c++ - 多次向 std::vector 添加相同的值(重复)

标签 c++ vector std

我想多次向 std::vector 添加一个值。例如。将整数值 1 加到 vector 中五次:

std::vector<int> vec;
vec.add(1, 5);

vec 之后应该是 {1,1,1,1,1} 的形式。有没有一种干净的 c++ 方法可以做到这一点?

最佳答案

这真的取决于你想做什么。

制作一个长度为 5 的 vector ,用 1 填充:

std::vector<int> vec(5, 1);

将 vector 增加 5 并用 1 填充:

std::vector<int> vec;
// ...
vec.insert(vec.end(), 5, 1);

或者调整它的大小(如果你知道初始大小):

std::vector<int> vec(0);
vec.resize(5, 1);

您还可以使用 fill 的多种版本之一来填充元素,例如:

fill_n(back_inserter(vec), 5, 1);

等等....阅读库文档,其中一些函数也会返回有用的信息。

关于c++ - 多次向 std::vector 添加相同的值(重复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30998444/

相关文章:

c++ - 如何在深拷贝中使用构造函数分配内存?

c++ - 为什么 std::vector 的元素不需要默认构造函数?

c++ - 带有第三个参数(即比较器函数)的重载 sort() 如何工作?

c++ - 堆栈/堆中的 vector 元素?长输入,C++

c++ - 哪些低级 Windows 特定函数用于在 Windows 中实现 std::thread/boost::thread/pthread?

c++ - 迭代 std::multimap 并删除某些条目

c++ - 是否有将主​​机字节顺序转换为网络字节顺序的 std::streambuf 版本?

c++ - 从 C++ 中的函数返回数组

c++ - 简单的 C++ pthread 程序输出与预期不符

C++:我的容器的 std::equal 段错误