带指针的嵌套foreach循环?

时间:2018-05-31 18:06:59

标签: c++ stl

map<string, vector<int>*> settings
for (auto el : settings)
    {
        for(auto i : el)
        {
            cout << i;
        }
    }

我选择了el:这个基于范围的&#39; for&#39;声明需要一个合适的开始函数,但没有找到。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:6)

使用时

map<string, vector<int>*> settings
for (auto el : settings)
{
}

elstd::pair<const string, vector<int>*>。在cppreference.com查看std::map::value_type的定义。

要从矢量中获取项目,您需要使用

map<string, vector<int>*> settings
for (auto el : settings)
{
   for ( auto item : *(el.second) )
   {
       // Use item
   }
}

为避免不必要地复制std::pair,您可以使用auto const& el

map<string, vector<int>*> settings
for (auto const& el : settings)
{
   for ( auto item : *(el.second) )
   {
       // Use item
   }
}