如何用范围填充向量?

时间:2014-03-10 22:45:27

标签: c++ vector

如何在C ++中用1到10的数字填充向量?我有这个,但它不起作用。

vector<int>test(10); test={ 1, 10 };

5 个答案:

答案 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 );