我想使用列表中的项目在地图中搜索
I want to search in the map using the item in the list
现在我有一个映射,这是命令_ map。我有一个名为adversion_list的列表。在command_map中,每对是地址和命令。在adversion_list中,每个项目都是地址。
因此,我要做的就是搜索command_map中adversion_list中存储的地址。当找到它时,打印出该命令及其地址。否则,只需打印出该命令即可。
我正在使用嵌套进行循环来做到这一点。但这行不起作用。
for (list<string>::iterator it_address= address_list.begin(); it_address != address_list.end(); ++it_address)
{
for (map<string,string>::iterator it=command_map.begin(); it!=command_map.end(); ++it)
{
if (*it_address == it->first)
{
cout<<"Addr_"<<it->first<<":"<<endl;
cout<<" "<<it->second<<endl;
}
else
{
cout<<" "<<it->second<<endl;
}
}
}
不要自己搜索地图,请使用查找方法。这是一棵红黑的树,因此以您的操作方式搜索它会很昂贵。使用std :: map ::查找。
for (list<string>::iterator it_address= address_list.begin(); it_address != address_list.end(); ++it_address) {
auto myCommand = command_map.find(*it_address);
if (myCommand != command_map.end()) {
cout<<"Addr_"<<myCommand->first<<":"<<endl;
cout<<" "<<myCommand->second<<endl;
} else {
cout<<" "<< *it_address <<endl;
}
}
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法在 CLion 中构建 C++ 项目
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 欧拉项目#8答案是大以获得有效答案
- 从链接列表c++中删除一个项目
- 为什么不;名字在地图上是按顺序排列的吗
- 如何比较标准::地图中的所有项目?
- 每个项目的地图是否可以具有不同的尺寸
- QML地图:大量显示的项目
- 我想使用列表中的项目在地图中搜索
- 检查最后一个项目是否通过地图密钥存在
- 在给定键 (C++) 的地图向量内查找项目
- 将项目存储在地图中的多个键下
- 如何获得项目的可视化地图
- 迭代地图和删除项目的最佳模式是什么?
- 将项目插入地图,其中还有 2 张地图
- 用户选择地图中的项目
- 从地图中获取项目并添加到向量c++中