Я думаю, что получаю переполнение вектора. (?) Однако я не знаю, как его решить. Упражнение, которое я пытаюсь выполнить, содержит следующее:C++ primer Chapter 3 exercise 3.20 vector over flow
Упражнение 3.20 Часть 1: Прочитайте набор целых чисел в вектор. Распечатайте сумму каждой пары соседних элементов.
расположение ошибки времени выполнения:
for (int sum; v1 < ivec.size();++v1){ //executes for statement as long as v1 < ivec.size() is true.
sum = ivec[v1] + ivec[v1 + 1]; // same as sum = ivec[0] + ivec[1].
cout << sum << endl; sum = 0; // prints the result of sum = ivec[v1] + ivec[v1 + 1].
Код для всей программы ниже.
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> ivec;
decltype (ivec.size()) v1 = 0;
unsigned int i1 = 0;
while (cin >> i1){ ivec.push_back(i1);} // receive input and stores into ivec.
for (int sum; v1 < ivec.size();++v1){ //executes for statement as long as v1 < ivec.size() is true.
sum = ivec[v1] + ivec[v1 + 1]; // same as sum = ivec[0] + ivec[1], v1 is now = 1.
cout << sum << endl; sum = 0; // prints the result of sum = ivec[v1] + ivec[v1 + 1].
}
system("pause");
return 0;
}
Пройдите через отладчик. Обратите внимание, что вы пытаетесь сделать с вектором. – chris
Как вы думаете, 'v1 + 1', когда' v1 == ivec.size() - 1'? – user657267