#include <iostream>
#include <vector>
int main(void) {
std::vector<int> ivec;
int n = 4;
for (std::vector<int>::iterator iter = ivec.begin(); iter != ivec.begin() + n; ++iter) {
int x;
std::cin >> x;
ivec.push_back(x);
}
return 0;
}
Выше приведен код.
Я хочу поэкспериментировать с вводом 4 целых чисел в пустой вектор.
В результате он компилируется и запускается, но никогда не выпрыгивает из l oop что бы я ни печатал.
Я внес некоторые корректировки.
Вот код:
#include <iostream>
#include <vector>
int main(void) {
std::vector<int> ivec;
int n = 4;
std::vector<int>::iterator tempiter = ivec.begin();
for (std::vector<int>::iterator iter = tempiter; iter != tempiter + n; ++iter) {
int x;
std::cin >> x;
ivec.push_back(x);
}
std::cout << "**********************************" << std::endl;
for (std::vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
std::cout << *iter << std::endl;
return 0;
}
На этот раз все работает нормально, как и ожидалось.
Я c .begin () всегда должен оставаться прежним.
Почему это не работает в первый раз? Почему это работает во второй раз?
Я думаю, что нет большой разницы.