2013-03-19 3 views
2

Я использую vector<int>, и я хочу сохранить все vector s в другое. Итак, я выбрал list<vector<int> >Отображение списка <vector<int>> Элементы

Позже я хочу показать все элементы в каждом vector в list. Но мне интересно, как отображать их сейчас.

Если я использую только vector или list, то я могу использовать итератор и показывать мои int s. Но я не знаю, как это сделать. Может ли кто-нибудь помочь?

+0

Спасибо @meh для редактирования. – user322

ответ

2

Вложенные итерации Это будет печатать данные каждого вектора в линии:

list<vector<int>> data; 

// ... 

for (auto &v : data) 
{ 
    for (auto &i : v) 
    { 
     cout << i << " "; 
    } 
    cout << endl; 
} 

Немного старше:

for (list<vector<int> >::const_iterator v = data.begin(); v != data.end(); v++) 
{ 
    for (vector<int>::const_iterator i = v->begin(); i != v->end(); i++) 
    { 
     cout << *i << " "; 
    } 
    cout << endl; 
} 
+0

эй спасибо за ваше предложение. это может быть полезно. Я просто попробую сейчас узнать, как работают оба метода. Но мне интересно, как работает авто в 1-м методе. – user322

+1

['auto'] (http://www.cprogramming.com/c++11/c++11-auto-decltype-return-value-after-function.html) и [' ranged-based loop'] (http://www.cprogramming.com/c++11/c++11-ranged-for-loop.html) являются функциями C++ 11. Читайте о них и наслаждайтесь их использованием. – deepmax

+0

прохладный спасибо u очень. Теперь я попытался отобразить со вторым методом, и его способность отображать только один вектор .. может быть, нет данных или что я должен видеть. в любом случае большое спасибо. – user322

1

Посмотрите на this question. Он содержит общий симплекс-принтер для C++ с поддержкой контейнеров STL.

Таким образом, вы будете просто #include это и ваш

list<vector<int>> data; 
    cout << data; 

будет работать как блаженство.

+0

спасибо, что я загляну в него. , – user322

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