使用map键在map上循环
Loop over map with a map key
如何循环打印map中的所有内容呢?
map<map<string, int>, map<string, std::vector<int> > >
我试过了:
ostringstream man2;
man2 << "$$$ -> man2, [nmarcu]:TO BE DELETED - test if IPSecAlarmsMap fill correct" << endl;
map<map<string, int>, map<string, std::vector<int> > >::iterator;
for(iterAlarmsMap = IPSecAlarmsMap.begin(); iterAlarmsMap != IPSecAlarmsMap.end(); iterAlarmsMap++ ) {
map<string, int>::iterator;
for(iterMsgMap = iterAlarmsMap->first.begin(); iterMsgMap != iterAlarmsMap->first.end(); iterMsgMap++ ) {
man2 << "Message: " << iterMsgMap->first << "tunnelId: " << iterMsgMap->second << endl;
}
map<string, std::vector<int> >::iterator;
for(iterTunnelConn = iterAlarmsMap->second.begin(); iterTunnelConn != iterAlarmsMap->second.end(); iterTunnelConn++ ) {
man2 << " Tunnel IP: " << iterTunnelConn->first << endl;
std::vector<int>::iterator iterConnVec;
for (iterConnVec = iterTunnelConn->second.begin(); iterConnVec!=iterTunnelConn->second.end(); iterConnVec++) {
man2 << " Conn= "<< *iterConnVec << endl;
}
}
}
trace(man2.str());
使用c++ 11 for-range-loop,你可以这样写:
map<map<string, int>, map<string, std::vector<int>>> original_map;
for (auto& submap_pair : original_map) {
for (auto& item_pair : submap_pair.first) {
print(item_pair.first); // Print the string
print(item_pair.second); // Print the int
}
for (auto& item_pair : submap_pair.second) {
print(item_pair.first); // Print the string
for (auto& vectItem : item_pair.second) { // Traverse through the vector
print(vectItem);
}
}
}
不知道你在做什么,但是如果我在我的代码中有这个地图,我会把子地图(map<string,int>
, map<string,vector<int>>
)和它的操作(例如:print
)包装成单独的类
相关文章:
- 如何循环打印顶点结构
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 从基于迭代器的for循环转换后,如何在map::find()中调用方法
- 访问基于范围的循环(如for_each)中的std::map迭代器
- 如何使用单 for 循环遍历 std::map<string>int 和 std::vector<int>?
- 在循环外计算map.end()的优势
- 使用 std::map 和 std::list 的 MRU 构造中的循环依赖关系
- 如何在std::map的值上使用基于范围的for循环
- 在 while 循环中向 std::map 添加一个条目会覆盖上次输入的对
- OpenMP:循环'std::map'基准测试(动态调度)
- 通过循环std::map调用类方法
- C++ std::map<std::string, std::set<std::string>> .如何循环设置值?
- 对带有for循环的map迭代器可能存在的误解
- 在map中插入列表项,无需手动循环
- 使用map键在map上循环
- for-each 循环生成错误,但 for(it=begin()...在遍历 std::map 包含 unique_ptr 时不会
- 如何在std::map中使用基于范围的for()循环
- 循环一个mpl::map
- c++中,通过使用for循环在map中存储键和值