C++ 穿过嵌套映射的
如何穿过嵌套贴图? 我想访问第二个嵌套映射中的值C++ 穿过嵌套映射的,c++,C++,如何穿过嵌套贴图? 我想访问第二个嵌套映射中的值 int main () { std::map<int, int> cool; cool.insert(make_pair(8,9)); std::map<char, std::map<int, int> > mmap; mmap.insert(std::make_pair('a', cool)); cout << mmap['a'][8]; std::map<ch
int main ()
{
std::map<int, int> cool;
cool.insert(make_pair(8,9));
std::map<char, std::map<int, int> > mmap;
mmap.insert(std::make_pair('a', cool));
cout << mmap['a'][8];
std::map<char, map<int, int> >::iterator itr;
for(itr = mmap.begin(); itr != mmap.end(); itr++){
cout << itr->second << endl;
}
return 0;
}
int main()
{
地图酷;
酷。插入(制作成对(8,9));
std::map-mmap;
mmap.插页(标准::制作成对('a',酷));
cout您的itr
指向对,
所以它的第二个
是一个地图
,
因此,一个迭代器将完成以下任务:
for(map<int, int>::iterator itr2 = itr->second.begin(); itr2 != itr->second.end(); ++itr2){
cout << itr2->second << endl;
}
for(map::iterator itr2=itr->second.begin();itr2!=itr->second.end();++itr2){
cout second使用C++17,您可以使用结构化绑定来完成以下任务:
for (auto const& [key, val] : mmap) {
for (auto const& [k, v] : val) {
std::cout << key << " " << k << " " << v << '\n';
}
}
for(自动常量和[key,val]:mmap){
用于(自动常数和[k,v]:val){
std::cout这种风格越来越像python:)快速提问,为什么我不能像*(itr)那样对列表、向量和Deques进行解引用?@YaGetMeh:可以。但我发现箭头更整洁。