В main()
я объявляю std::vector
и вызываю f(std::vector<float>& vec)
:
int main(){
std::vector<float> vec;
vec.resize(4);
f(vec);
}
А затем в функции f()
я пытаюсь присвоить ей значения:
f(std::vector<float>& vec){
for(int i = 0;i < vec.size();i++){
vec[0] = //someSum;
vec[1] = //someSum;
//repeat until vec[3]
}
}
Но на линии
vec[1] = //someSum;
я получаю векторный индекс из-за ошибки диапазона. Используя отладчик, я обнаружил, что емкость vec
была изменена на 4, но в ней было только значение [0]
.
Я пробовал что-то вроде толкания назад:
vec.push_back(0);
И инициализация вот так:
std::vector<float> vec =
{0,0,0,0};
Но я все равно получаю ту же ошибку. Почему это так?