find_if and std::pair, but just one element(find_if 和 std::pair,但只有一个元素)
本文介绍了find_if 和 std::pair,但只有一个元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我有以下代码:
std::vector< std::pair <int, char> > myVec;
or
std::list< std::pair <int, char> > myList;
/* then ***************/
std::list< std::pair <int, char> >::iterator listIt;
or
std::vector< std::pair <int, char> >::iterator vectorIt;
/* No difference between vector and list */
现在我只需要在其中搜索一个 int 元素,所以:
Now i need to search just for one int element in them, So:
vectorIt = std::find_if(myVec.begin(),myVect.end(),make_pair(.....));
^^^^^^^^^^^^^^^^^
我该怎么做?
推荐答案
编写一个接受 std::pair 的一元谓词,如果 first 元素返回 true等于给定值.
Write a unary predicate that takes an std::pair, and returns true if the first element is equal to a given value.
例如:
struct CompareFirst
{
CompareFirst(int val) : val_(val) {}
bool operator()(const std::pair<int,char>& elem) const {
return val_ == elem.first;
}
private:
int val_;
};
然后
// find first element with first == 42
vectorIt = std::find_if(myVec.begin(),myVect.end(), CompareFirst(42));
这篇关于find_if 和 std::pair,但只有一个元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:find_if 和 std::pair,但只有一个元素
基础教程推荐
猜你喜欢
- 如何通过C程序打开命令提示符Cmd 2022-12-09
- 常量变量在标题中不起作用 2021-01-01
- 如何将 std::pair 的排序 std::list 转换为 std::map 2022-01-01
- 在 C++ 中计算滚动/移动平均值 2021-01-01
- 如何检查GTK+3.0中的小部件类型? 2022-11-30
- 这个宏可以转换成函数吗? 2022-01-01
- C++结构和函数声明。为什么它不能编译? 2022-11-07
- 静态库、静态链接动态库和动态链接动态库的 .lib 文件里面是什么? 2021-01-01
- 我有静态或动态 boost 库吗? 2021-01-01
- 如何在 C++ 中初始化静态常量成员? 2022-01-01
