for循环不会终止

时间:2014-03-24 04:23:27

标签: c++

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 个答案:

答案 0 :(得分:4)

你继续推动向量中的元素,因此,当测试for循环条件时,向量的大小增加1;因此它永远不会退出,将for循环修改为以下内容:

for (int i = 0; i < kNumInts ; ++i)

答案 1 :(得分:0)

索引我永远不会达到one.size()的值,因为在向向量添加元素的同时,它的大小每次都会增加1。寻找另一种方法来限制要插入向量的元素数量