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次迭代后不会终止。它永远不会停止。我做错了什么?
答案 0 :(得分:4)
你继续推动向量中的元素,因此,当测试for循环条件时,向量的大小增加1;因此它永远不会退出,将for循环修改为以下内容:
for (int i = 0; i < kNumInts ; ++i)
答案 1 :(得分:0)
索引我永远不会达到one.size()的值,因为在向向量添加元素的同时,它的大小每次都会增加1。寻找另一种方法来限制要插入向量的元素数量