c++ - 在 C++ 中,如何在没有循环的情况下用值 {1,1,1,...,1} 初始化 vector<int> v(1000)?

标签 c++ c++11 vector syntax

我们可以初始化一个vectorC++11通过以下方式

vector<int> v {1,2,3,4,5,6}

但是如果我想初始化一个 vector<int> v(1000) 怎么办?具有值 {1,1,1,1....1}


在 python 中它将是:

somelist [1] * 1000

我不确定 Python 在该行后面是否有循环,但我通过省略循环的目标是在性能和​​更简单的代码方面做得更好。

最佳答案

如果你想要一个包含 1000 个元素的 vector ,全部设置为 1,那么 std::vector has a constructor that does that for you :

vector<int> v(1000, 1);

此构造函数的时间复杂度必然是线性的,但您可以期望它非常快。您很难找到更快的替代方案,因此如果这是一个问题,您可能需要重新设计。

关于c++ - 在 C++ 中,如何在没有循环的情况下用值 {1,1,1,...,1} 初始化 vector<int> v(1000)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25397294/

相关文章:

c++ - 应用没有坐标的纹理

c++ - 需要帮助在 C++ 中使用 stringstream 在一行中输入多个整数

std::move 和 std::make_move_iterator 的 C++11 编译错误

c++ - 为什么 std::ratio 不支持比较运算符?

c++ - C++ 中两个迭代器的减法如何表示 vector 项的索引?

c++ - std::vector<T>::clear() 是否调用内容的析构函数?

c++ - 基类 'class std::vector<...>' 有一个非虚析构函数

c++ - 编译期间模板优化中的static_cast

c++ - 从数组中获取一个 block

c++ - 为什么 GMOCK 对象不返回依赖注入(inject)中 EXPECT_CALL 设置的值