map<string, vector<int>*> settings
for (auto el : settings)
{
for(auto i : el)
{
cout << i;
}
}
我选择了el:这个基于范围的&#39; for&#39;声明需要一个合适的开始函数,但没有找到。 我该如何解决这个问题?
答案 0 :(得分:6)
使用时
map<string, vector<int>*> settings
for (auto el : settings)
{
}
el
是std::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
}
}