繁体   English   中英

如何不循环地初始化std :: vector?

[英]How to initialize std::vector without a cycle?

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

如您所见,每个元素重复的值相同。 有没有办法初始化没有循环的向量? 如果没有,那是最快的方法?

在此先感谢您的帮助。

您可以使用带大小的构造函数。 这将对所有元素进行值初始化。 对于int这意味着初始化为零:

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

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

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

如果要初始化构造,请考虑@juanchopanza的答案; 但是,如果要在代码的任何其他部分为vector中的所有记录设置相同的值,则可以考虑采用std::fill

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM