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

use*_*180 1 c++ initialization vector std cycle

    std::vector<int> v;
    for (size_t i=0; i<100; i++) 
       v.push_back(0);
Run Code Online (Sandbox Code Playgroud)

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

在此先感谢您的帮助.

jua*_*nza 6

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

std::vector<int> v(100); // 100 elements with value 0
Run Code Online (Sandbox Code Playgroud)

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

std::vector<int> v(100, 42); // 100 elements with value 42
Run Code Online (Sandbox Code Playgroud)