Форум программистов, компьютерный форум CyberForum.ru

Как вывести вектор списков? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Den4ik
0 / 0 / 0
Регистрация: 24.08.2011
Сообщений: 42
11.09.2011, 21:18     Как вывести вектор списков? #1
Нужно вывести вектор в котором хранятся списки, а в списках сами элементы

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <vector>
#include <list>
 
vector<list<Edge *>> Adjlist;
 
void Show()
    {
        for(int i = 0; i < this->cnt_v; i++)
        {
            cout<<Adjlist[i]....
        };
    };
а как элемент списка (библиотека list) вытащить не пойму
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2011, 21:18     Как вывести вектор списков?
Посмотрите здесь:

Не могу вывести вектор C++
Как вывести на экран весь вектор? Пожалуйста, подскажите C++
C++ Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов
C++ Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток
STL Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
11.09.2011, 21:38     Как вывести вектор списков? #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <vector>
#include <list>
#include <cstdlib>
 
using namespace std;
 
int main(int argc, char ** argv)
{
    vector<list<int>> lst;
    for(int i = 0; i < 10; i++)
    {
        list<int> list;
        for(int j = 0; j < 10; j++)
            list.push_back(rand() % 100);
        lst.push_back(list);
    }
    for(int i = 0; i < lst.size(); i++)
    {
        list<int>::iterator it;
        for(it = lst[i].begin(); it != lst[i].end(); ++it)
            cout << *it << " ";
        cout << endl;
    }
    system("pause");
    return 0;
}
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
11.09.2011, 22:10     Как вывести вектор списков? #3
Den4ik,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <vector>
#include <list>
#include <algorithm>
#include <functional>
 
template <typename T>
struct PrintVector : std::unary_function <void, T> {
   void operator()(const T& value) const {
      std::cout << value << ' ';
   }
};
 
int main() {
   std::list <int> l_numbers = { 1, 2, 3, 4, 5 };
   std::vector <std::list <int> > v_lists(5, l_numbers);
   
   
   for (std::vector <std::list <int> >::const_iterator p = v_lists.begin();
         p != v_lists.end();
         ++p
   ) {
      std::for_each(p->begin(), p->end(), PrintVector <int>());
      std::cout << '\n';
   }
 
   return 0;
}
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
11.09.2011, 22:59     Как вывести вектор списков? #4
Ещё вариант, с помощью Boost.Phoenix:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <algorithm>
#include <list>
#include <vector>
#include <boost/phoenix/phoenix.hpp>
 
namespace phx = boost::phoenix;
using phx::arg_names::_1;
 
int main()
    {
    std::list<int> list_{1, 2, 3, 4, 5};
    std::vector<std::list<int> > vector_(5, list_);
    
    phx::for_each(vector_,
        phx::lambda
            [
            phx::for_each(_1,
                phx::lambda
                    [
                    std::cout << _1 << ' '
                    ]
                ),
            std::cout << phx::val("\n")
            ]
        )();
    }
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
12.09.2011, 01:28     Как вывести вектор списков? #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <algorithm>
#include <iterator>
#include <list>
#include <vector>
 
int main()
{
    std::vector<std::list<int>> v =
    {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };
 
    typedef std::ostream_iterator<int> int_out_iter;
 
    std::for_each(v.begin(), v.end(),
                  [](const std::list<int> lst) {
                      std::copy(lst.begin(), lst.end(), int_out_iter(std::cout, " "));
                      std::cout << '\n';
                  });
}
Yandex
Объявления
12.09.2011, 01:28     Как вывести вектор списков?
Ответ Создать тему
Опции темы

Текущее время: 06:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru