C++ make_pair地图找到第二个
C++ make_pair map find second
我有这样的地图(第一个和第二个参数都是唯一的(:
std::map<DWORD, DWORD> mapTest;
mapTest.insert(make_pair(1, 101));
mapTest.insert(make_pair(2, 102));
mapTest.insert(make_pair(3, 103));
我有一个搜索器,它非常适合地图的第一个值:
bool SearchInMap(DWORD firstmap, DWORD * secondmap)
{
if (mapTest.end() == mapTest.find(firstmap))
return false;
*secondmap = mapTest[firstmap];
return true;
}
但是我需要另一种方法,它可以在第二个参数中搜索,看起来像我展示的。如果可能的话,我不想在周期中使用。我知道我可能需要find_if搜索,但我无法处理它。
提前感谢您的帮助!
您可以使用lambdas以简单的方式做到这一点。
DWORD val = 103;
auto result = std::find_if(stMap.begin(), stMap.end(), [val](const auto& mo) {return mo.second == val; });
DWORD foundkey = result->first;
重要的是捕获您的输入
[val]
相关文章:
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 等待整个 omp 块完成,然后再调用第二个函数
- 我想在C++中读取一些多个字符,但它永远不会读取第二个字符
- 如何在创建自定义迭代器时获得 std::p air 的第一个和第二个?
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 将第二个 GATT 服务添加到 Movesense 容器
- 如何在 c++ 中根据第二个元素按降序对列表进行排序
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- 比较 2 个向量并从第二个向量中删除在第一个 - c++ 中找不到的元素
- 为什么这个程序没有打印返回的迭代器的正确第二个元素?
- 使第二个类的构造函数成为第一个类中的友元函数
- 为什么第二个代码给出了预期的结果,而第一个代码却没有?
- C++ make_pair地图找到第二个
- 如何获取地图中向量的第二个值?
- 为什么在地图中打印第二个元素
- 为什么地图的第二个值没有修改?
- 将映射从第二个元素复制到另一个地图
- 如何使用迭代器更新地图的第二个值
- 使用for_each或变换访问地图的第二个元素
- C++ 从地图的第二个元素迭代