修改列表列表

时间:2015-07-01 13:53:55

标签: c++ stl stl-algorithm

有这样的结构:

  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 个答案:

答案 0 :(得分:1)

您可以使用C ++ 11 ranged based for loops之类的:

std::list<std::list<std::string>> data;
for (auto & e : data)
{
    if (some_condition)
        e.push_back(some_data)
}