Что являются структуры инициализирована, как C++
При использовании
Node* linkedlist = new Node[100];
всех элементов массива по умолчанию инициализируется. key
и value
инициализируются по умолчанию, вызывая конструктор по умолчанию std::string
. link
по умолчанию инициализирован, то есть левый неинициализирован.
Как бы перечислить количество структур в настоящее время?
Вы не можете сделать это, указав указатель. Поэтому std::vector
предпочтительнее динамически распределенных массивов. Вы получаете гораздо больше функциональности с std::vector
.
Вместо
Node* linkedlist = new Node[100];
использование
std::vector<Node> linkedlist(100);
Update, в ответ на комментарий OP в
Когда вы не можете использовать std::vector
, вы должны следить за от количества элементов в массиве.
int numItems = 100; // It could be obtained from the user input also.
Node* linkedlist = new Node[numItems];
Теперь вы можете рассчитывать на стоимость numItems
перебрать массив Node
с в остальной части кода.
Не понимаю. Если вы создаете массив из 100 узлов, то у вас есть 100 узлов. – NathanOliver
Но не являются ли их значения не инициализированными? –
'ключ' и' значение' есть. 'link' будет содержать мусор, если вы его не установите. – NathanOliver