如何在没有循环的情况下初始化std :: vector?

时间:2014-02-09 17:38:55

标签: c++ vector initialization std cycle

    std::vector<int> v;
    for (size_t i=0; i<100; i++) 
       v.push_back(0);

如您所见,每个元素重复的值相同。有没有办法在没有循环的情况下初始化矢量?如果没有,这是最快的方法吗?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

您可以使用构造函数来获取大小。这将初始化所有元素。对于int,这意味着零初始化:

std::vector<int> v(100); // 100 elements with value 0

如果您需要不同的数字,则可以传递具有所需值的第二个参数:

std::vector<int> v(100, 42); // 100 elements with value 42

答案 1 :(得分:0)

如果你想初步建设,请考虑@juanchopanza的答案;但如果您想为代码的任何其他部分vector中的所有记录设置相同的值,则可以考虑采用std::fill