您的位置:首页 > 其它

使用find_if的自定义条件查找vector或map

2016-08-26 10:27 447 查看
#include<algorithm>
using namespace std;
vector<testStruct>testStructVector;

void CtestDlg::OnBnClickedButton1()
{
testStruct struct1;
for(int i = 0; i < 5; i++)
{
struct1.a = i;
struct1.b = i + i;
testStructVector.push_back(struct1);
}

auto itrFind = find_if(testStructVector.begin(), testStructVector.end(), [](testStruct myStruct)
{
return myStruct.a > 2 && myStruct.b < 8;
});

if(itrFind != testStructVector.end())
TRACE("found!");
else
TRACE("not found!");
}


结果:

struct1.a = 0,1,2,3,4

struct1.b = 0,2,4,6,8

条件

myStruct.a > 2 && myStruct.b < 8能找到struct1.a = 3, myStruct.b =6时的值,因此是found


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: