@Waksim

Один двумерный или два одномерных массива?

Привет Тостер!

Есть три вида информации (Имя, Фамилия, Отчество), их нужно рассортировать для дальнейшего использования.
Что выбрать? Один многомерный массив или множество одномерных?

// создаем одномерные массивы
string *name = new int [1000];
string *s_name = new int [1000];
string *m_name = new int [1000];

// OR

string **full_name = new string* [3];  
for (int i = 0; i < 3; i++) { 
     full_name[ш] = new string [1000];    // создаем двумерный массив
  }
    
    
// ... операции над массивами (склеивание строк, поиск подстроки) ... 
 

// Очистка памяти
delete [] name; 
delete [] s_name; 
delete [] m_name; 

for (int i = 0; i < 3; i++) {
    delete [] full_name[i];  // удаляем двумерный массив
  }


Вопрос: Что лучше выбрать с точки зрения использования памяти и производительности?
После операций память освобождается и массивы набиваются новыми значениями. И так много раз.

Заранее всем спасибо)
  • Вопрос задан
  • 476 просмотров
Решения вопроса 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Что выбрать?

То, в чём потом не запутаешься. Потому что в массивах ты уже запутался.
Я бы предложил один массив структур с полями для имени, фамилии и отчества.

Что лучше выбрать с точки зрения использования памяти и производительности?

Лучше выбрать то, в чём потом не запутаешься. Если будет тормозить -- прогнать через профилировщик и смотреть на результаты профилирования.
Ответ написан
Комментировать
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Массив структур, если это не для обучения, то скорее всего лучшим выбором будет std::vector, он сам будет следить за памятью и расширяться при необходимости. Худший вариант - второй, где указатель на указатель, т.к. кеширование процессора не будет столь эффективным
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы