Массив структурного переполнения стека

Я сделал структуру, и теперь мне нужно создать массив для соответствующей структуры. Может ли кто-нибудь помочь мне, как это сделать? Я смотрел на вещи в Интернете и не мог их понять, поэтому кто-нибудь может дать мне пример и объяснение того, как создать массив структуры.

 struct CANDIDATE{

string candiFN;
string candiLN;
int partyID;
int votes;

};

1

Решение

Так же, как вы делаете любой массив. Следующее делает массив длиной 5.

CANDIDATE foo [5];

Затем вы можете заполнить его так, как вы хотите

for (unsigned int i = 0; i < 5; ++i)
{
CANDIDATE temp("first", "second", 1, 2);
foo[i] = temp;
}

Или же

for (unsigned int i = 0; i < 5; ++i)
{
CANDIDATE temp;
temp.candiFN = "first";
temp.candiLN = "second";
temp.partyID = 1;
temp.votes = 2;
foo[i] = temp;
}

Обратите внимание, что в C ++ используется std::vector обеспечивает большую безопасность и гибкость для большинства приложений.

std::vector<CANDIDATE> bar;
for (unsigned int i = 0; i < 5; ++i)
{
CANDIDATE temp("first", "second", 1, 2);
bar.push_back(temp);
}
4

Другие решения

Вы можете просто сделать это:

struct CANDIDATE{
string candiFN;
string candiLN;
int partyID;
int votes;
}array[5];
//just add an array between } and ;
1

Вы можете сделать массив значений

CANDIDATE foo[5];

или массив указателей

CANDIDATE* foo = new CANDIDATE[5];

Первый идет в стек, второй в кучу и нужно вручную удалить

В любом случае рассмотреть вопрос об использовании std::vector

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector