невозможно использовать список в векторе списка - PullRequest
1 голос
/ 08 октября 2019

Я сделал вектор из списка символов

vector<list<char>> vect;

, и мне нужно выполнить итерацию по вектору, чтобы вывести все первые элементы списка. Я сделал

for (auto i = vect.begin(); i != vect.end(); i++)
    {
        cout<<*i.front();
    }

выдает ошибку, что нет функции .front() полная ошибка ниже

error: ‘class __gnu_cxx::__normal_iterator<std::__cxx11::list<char>*, std::vector<std::__cxx11::list<char> > >’ has no member named ‘front’
         cout << *i.front();

Может кто-нибудь помочь мне с этой ошибкой?

Ответы [ 2 ]

4 голосов
/ 08 октября 2019

То, что вы пытаетесь, тоже эквивалентно

cout<<*(i.front());

i является итератором, поэтому у него нет front.

Вы можете просто использовать

cout<<i->front();
2 голосов
/ 08 октября 2019

В строке

cout<<*i.front();

компилятор пытается получить значение ( i.front() ). Итак, вы получили итератор ошибок, у меня нет члена с именем front ().

i -> указатель итератора
*i -> значение в списке итераторов в этом случае

i.front() -> не является членом итератора
(*i).front() -> начало списка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...