如何在没有循环的情况下初始化 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
。
相关文章:
- 如何在不知道属性具有哪些构造函数的情况下初始化属性?
- 在没有库的情况下初始化 OpenGL
- 在没有构造函数的情况下初始化 const c++ 类
- 默认情况下初始化时 POD 是否给予特殊处理 (C++14)?
- 为什么默认情况下初始化局部变量
- 有没有一种方法可以在不使用std ::移动的情况下初始化类构建类的类
- 如果在没有 new 运算符的情况下初始化,C++是否将类对象视为值类型
- 如何在没有循环的情况下初始化 std::vector
- 如何在不使用指针的情况下初始化具有可变大小的 2D 数组
- 如何在给定包含类的实例的情况下实例化嵌套类
- 在不使用"new"的情况下实例化参数参数中的对象
- 在不使用动态数组的情况下初始化数组时出现问题
- 如何在没有初始化对象的情况下初始化对象的管理器shared_ptr?
- 在没有 new 关键字的情况下初始化C++对象的内存从何而来
- 如何在没有main的情况下初始化谷歌测试
- 在下面的代码中,如何在不使用伪值的情况下初始化类成员
- 如何在不使用C++11功能的情况下初始化类中的数组
- 如何在<int>没有循环的情况下初始化值为 {1,1,1,...,1} 的向量 v(1000)C++?
- 在没有实例变量的情况下初始化派生类中的"inherited static members"
- wxWidgets:如何在不使用宏和不进入主应用程序循环的情况下初始化wxApp