2014-03-10 2 views

ответ

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); 
+1

'iota' чувствует себя неполным с помощью' iota_iterator'. Я не хочу, чтобы нужно было инициализировать что-то просто, чтобы немедленно перезаписать его. Может быть, 'uninitialized_inserter' поможет. –

+0

@KerrekSB Согласен. Я действительно не использую его в качестве реального кода. – juanchopanza

2

Другой использованием generate:

vector<int>test(10); 
int x = 0; 
std::generate(test.begin(), test.end(), [&]{ return x++; }); 
0

Вы можете использовать стандартный алгоритм std::iota заявленных в заголовке <numeric> Например

#include <numeric> 
#include <vector> 

//... 

std::vector<int> v(10); 
std::iota(v.begin(), v.end(), 1); 
Смежные вопросы