如何在C ++中用1到10的数字填充向量?我有这个,但它不起作用。
vector<int>test(10);
test={ 1, 10 };
答案 0 :(得分:3)
另一位使用generate
:
vector<int>test(10);
int x = 0;
std::generate(test.begin(), test.end(), [&]{ return x++; });
答案 1 :(得分:3)
您可以使用std::iota()
:
std::vector<int> v(10);
std::iota(v.begin(), v.end(), 1);
答案 2 :(得分:2)
许多选择。例如,
vector<int> test{1,2,3,4,5,6,7,8,9,10};
或
std::vector<int> test;
test.reserve(10); // prevent some reallocations
for (int i = 1; i < 11; ++i)
test.push_back(i);
或
std::vector<int> test(10);
std::iota(test.begin(), test.end(), 1);
答案 3 :(得分:1)
vector<int> vInts;
for (int i=1;i<=10;++i){
vInts.push_back(i);
}
答案 4 :(得分:0)
您可以使用标头std::iota
中声明的标准算法<numeric>
例如
#include <numeric>
#include <vector>
//...
std::vector<int> v( 10 );
std::iota( v.begin(), v.end(), 1 );