using namespace std;
const int kNumInts = 10;
int main(int argc, const char * argv[])
{
vector<int> one(kNumInts);
cout << one.size() << endl;
for (int i = 0; i < one.size(); ++i)
{
one.push_back(i);
}
cout << one.size() << endl;
std::cout << "Hello, World!\n";
return 0;
}
Когда я запускаю эту программу, цикл for не завершается после 10 итераций. Это просто никогда не прекращается. Что я делаю неправильно?
2 ответа
Вы продолжаете нажимать элементы в векторном, и, таким образом, при проверке условия цикла for размер вектора увеличился на 1; и, таким образом, он никогда не завершается, чтобы исправить это, измените цикл for следующим образом:
for (int i = 0; i < kNumInts ; ++i)
one[i] = i
, а не one.push_back(i)
.
Индекс i никогда не достигает значения one.size (), потому что в то же время, когда вы добавляете элементы в вектор, его размер увеличивается на 1 каждый раз. Найдите другой способ ограничить количество элементов, которые вы хотите вставить в вектор.
Похожие вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.