2013-07-25 3 views
0

Как мы все знаем, что это нормально, чтобы инициализировать массив int так:Как инициализировать массив std :: vector?

int intAry[] = {7, 8, 9}; 

Итак, я хочу знать, как можно инициализировать массив станд :: вектор in the same way (только в исходном списке) :

typedef std::vector<int> type; 
type vecAry[] = {vec1, vec2, vec3}; 

Я знаю, что это законно, чтобы написать код, как fllows, теперь мой вопрос, как инициализировать vecAry в одной строке кода:

type vec1; 
type vec2; 
type vec3; 
type vecAry = {vec1, vec2, vec3}; 
+1

'type v = {1, 2, 3}' – 0x499602D2

+2

И зачем вам нужен массив векторов? –

+0

@ 0x499602D2, ты издеваешься? вы не можете компилировать в C++. – Triumphant

ответ

4

В C++ 11,

type vecAry[] {{},{},{}}; 

или если вы хотите непустые векторы

type vecAry[] {{1,2,3},{4,5,6},{7,8,9}}; 

Если вы застряли в прошлом, вы можете инициализировать его с пустыми векторами:

type vecAry[] = {type(), type(), type()}; 

, но вы не можете инициализировать его произвольными значениями без какого-либо вспомогательного устройства, например, в Boost Assignment library:

type vecAry[] = {list_of(1)(2)(3), list_of(4)(5)(6), list_of(7)(8)(9)}; 
Смежные вопросы