C ++ Перебирать список структур структур - PullRequest
0 голосов
/ 14 октября 2018

У меня проблема с доступом к списку структуры в структуре:

struct  B{
  string word;
};

struct A{
  list<B> message;
};

Вставка данных в структуру данных не проблема:

list<A> messageList;
while(--there are messages to be found--){
  list<B> wordList;
  do{
    string buff;
    wordList.push_front({buff});
  }while(--there are words to be found--);
  messageList.push_front({wordList});
}

Но знайтеЯ хотел бы прочитать каждое слово сообщения:

list<A>::iterator itMessage;
for(itMessage = messageList.begin(); itMessage != messageList.end(); itMessage++){

Здесь я застрял, могу ли я сделать итератор из итератора?

  list<itMessage->message>::iterator itWord;

Или список из списка?

  list<list<??>>::iterator itWord;

1 Ответ

0 голосов
/ 14 октября 2018

Сначала итерируйте сообщения, затем итерируйте слова:

struct A {
    auto begin() {
        return message.begin();
    }
    auto end() {
        return message.end();
    }

    list<B> message;
};

for (auto& message : messageList)
    for (auto& word : message)
    {
        ...
    }

Если вам нужен один итератор для слов в messageList, вы должны написать его сами.

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