Здесь, на этой линии
for(j = 0; j < ARRAYSIZE(arr); j++){
Что такое ARRAYSIZE
? Это не определено нигде в вашем коде. Вы, вероятно, имели в виду это вместо:
for(j = 0; j < arr.size(); j++){
Также обратите внимание, что size
- это функция, поэтому вам нужно вызвать ее, поставив ()
в конце. Это здесь не будет работать:
cout << "Success: " << arr[arr.size] << endl;
Вам нужно arr.size()
, чтобы он скомпилировался, и даже тогда это было бы за пределами. Чтобы напечатать последний элемент, выполните arr[arr.size()-1]
или, что еще лучше, arr.back()
(и убедитесь, что массив не пустой в любом случае, используя arr.empty()
). Чтобы просто напечатать размер массива, выполните:
cout << "Success: " << arr.size() << endl;
Небольшое примечание (не беспокойтесь, проблем не возникло): в этом цикле
int o;
for(o = 0; o < arr.size(); o++){
arr[o] = 0;
}
Поскольку вы не используете o
вне цикла, вы можете просто переместить объявление в инициализацию цикла, например:
for(int o = 0; o < arr.size(); o++){
arr[o] = 0;
}
И если вы получаете предупреждение о несоответствии со знаком / без знака, вы можете избавиться от него, изменив int
на unsigned int
.