gpt4 book ai didi

c++ - find_if 和 std::pair,但只有一个元素

转载 作者:可可西里 更新时间:2023-11-01 18:41:56 27 4
gpt4 key购买 nike

假设我有以下代码:

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 元素,所以:

vectorIt = std::find_if(myVec.begin(),myVect.end(),make_pair(.....));
^^^^^^^^^^^^^^^^^

我该怎么做?

最佳答案

编写一个接受 std::pair 的一元谓词,并在 first 元素等于给定值时返回 true。

例如:

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));

关于c++ - find_if 和 std::pair,但只有一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12008059/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com