Векторный индекс ошибки диапазона при цикле - PullRequest
0 голосов
/ 06 ноября 2019

В 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};

Но я все равно получаю ту же ошибку. Почему это так?

...