2013-05-12 12 views
-3

Я хочу создать список из 4 векторов с размерами переменных (n1 n2 3 и n4) и все заполнены 0 Как я могу это сделать? Я могу сделать list<vector<float> > mylist Но как поместить размер mylist [0] в n1 и т. Д.?Список векторов (C++)

ответ

7
// on a C++11 enabled compiler 
std::list<std::vector<float>> listofvectors = { 
    std::vector<float>(n1, 0.f) 
    , std::vector<float>(n2, 0.f) 
    , std::vector<float>(n3, 0.f) 
    , std::vector<float>(n4, 0.f) 
}; 
// or more traditional 
std::list< std::vector<float> > listofvectors; 
listofvectors.push_back(std::vector<float>(n1, 0.f)); 
// so forth 
+3

Это необычный способ форматирования запятых. : P –

+0

Спасибо, извините за то, что я новичок, но почему вы пишете 0.f вместо 0? Что-то связано с поплавком? Разве мы не можем написать 0? – user2370139

+0

@sftrabbit Нет, почему? Boost всегда использует это, это намного лучше при указании списков инициализаторов, так как первый символ - ':', а следующий - запятые, и поэтому легче форматировать эти строки. Думаю, нам еще предстоит увидеть «стандартный» способ в многострочных списках инициализаторов. –

2

Вы должны добавить эти векторы в свой список:

mylist.push_back(vector<float>(n1, 0.f)); 
mylist.push_back(vector<float>(n2, 0.f)); 
mylist.push_back(vector<float>(n3, 0.f)); 
mylist.push_back(vector<float>(n4, 0.f)); 

vector конструктор принимает два параметра создаст один с (первый параметр) все элементы, установленные на значение второго параметра.

Смежные вопросы