查找-5

#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;

bool doubled(int elem1, int elem2)
{
	return elem1 * 2 == elem2;
}

int main()
{
	vector<int> ivec;

	ivec.push_back(1);
	ivec.push_back(3);
	ivec.push_back(3);
	ivec.push_back(5);
	ivec.push_back(5);
	ivec.push_back(5);
	ivec.push_back(7);
	ivec.push_back(8);

	auto pos = adjacent_find(ivec.begin(), ivec.end());//找连续相等的
	if (pos != ivec.end())
		cout << "fins ok:" << distance(ivec.begin(), pos) + 1 << endl;

	//用一个谓词去找
	//找连续的两个数,第一个数是第二个数的两倍
	auto pos1 = adjacent_find(ivec.begin(), ivec.end(), doubled);
	if (pos1 != ivec.end())
		cout << "fins ok:" << distance(ivec.begin(), pos1) + 1 << endl;
	else
		cout << "error" << endl;
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42655231/article/details/82798311