多次将相同的值添加到 std::vector(重复)
Add same value multiple times to std::vector (repeat)
我想将一个值多次添加到 std::vector。例如。将整数值 1 加五次到向量中:
std::vector<int> vec;
vec.add(1, 5);
vec 之后应该是 {1,1,1,1,1} 的形式。有干净的 C++ 方法吗?
您可以为此使用 std::vector
构造函数:
std::vector<int> vec (5,1);
这个签名是:
vector (size_type n, const value_type& val)
标准algorithm
header有很多函数可以在这种情况下使用。 std::fill_n
适合你的情况。:
std::fill_n (std::back_inserter(vec), 5, 1);
这真的取决于你想做什么。
制作一个长度为 5 的向量,用 1 填充:
std::vector<int> vec(5, 1);
将向量增长 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);
等等....阅读库文档,其中一些函数也return有用的信息。
您可以使用赋值方法:
vec.assign(5, 1);
这将在添加新元素之前删除向量中的所有现有元素。
只需使用std::vector::insert
。
#include <vector>
#include <iostream>
int main()
{
std::vector<int> a;
a.insert(a.end(), 5, 1);
for(auto const& e : a)
std::cout << e << std::endl;
return 0;
}
我想将一个值多次添加到 std::vector。例如。将整数值 1 加五次到向量中:
std::vector<int> vec;
vec.add(1, 5);
vec 之后应该是 {1,1,1,1,1} 的形式。有干净的 C++ 方法吗?
您可以为此使用 std::vector
构造函数:
std::vector<int> vec (5,1);
这个签名是:
vector (size_type n, const value_type& val)
标准algorithm
header有很多函数可以在这种情况下使用。 std::fill_n
适合你的情况。:
std::fill_n (std::back_inserter(vec), 5, 1);
这真的取决于你想做什么。
制作一个长度为 5 的向量,用 1 填充:
std::vector<int> vec(5, 1);
将向量增长 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);
等等....阅读库文档,其中一些函数也return有用的信息。
您可以使用赋值方法:
vec.assign(5, 1);
这将在添加新元素之前删除向量中的所有现有元素。
只需使用std::vector::insert
。
#include <vector>
#include <iostream>
int main()
{
std::vector<int> a;
a.insert(a.end(), 5, 1);
for(auto const& e : a)
std::cout << e << std::endl;
return 0;
}