Изменение списка списков

Есть такая структура:

  std::list<std::list<std::string>> data;

Мне нужно пройти через список верхнего уровня и добавить внутренние списки по некоторым критериям. что-то вроде этого:

  std::for_each(data.begin(), data.end(), 
                 [<some variable required for the logic>]
                 (const std::list<std::string>& int_list) {
         if(...) 
              int_list.push_back(...);
  });

вы видите, что этот код недействителен, потому что for_each не может изменить последовательность. Что бы вы посоветовали мне выполнить, что мне нужно (без изменения исходной структуры данных)?

1 ответ

Решение

Вы можете использовать ранжированный C++11 для циклов, таких как:

std::list<std::list<std::string>> data;
for (auto & e : data)
{
    if (some_condition)
        e.push_back(some_data)
}
Другие вопросы по тегам