search_n

InputIterator search_n (InputIterator beg, InputIterator end, Size count, const T& value);
InputIterator search_n (InputIterator beg, InputIterator end, Size count, const T& value, BinaryPredicate op);

功能:
第一形式返回区间[beg, end)中的第一组“连续count个元素值全等于value”的元素位置

第二形式返回区间[beg, end)中的第一组“连续count个元素使op(elem, value)结果为true”的元素位置


备注:
a、如果没有找到匹配元素,两种形式都返回end
b、注意op在函数调用过程中不应该改变自身状态
c、op不应该改动传进来的参数

d、时间复杂度:线性

bool twice(const int para1, const int para2)  
{  
	return ((2 * para1) == para2);  
}  

int main(int argc, char *argv[])
{
	/************search_n的使用************/
	int arr2[] = {1,8,8,8,4,4,3};
	vector<int> vec(arr2, arr2 + sizeof(arr2)/sizeof(arr2[0]));

	vector<int>::iterator iterVec = search_n(vec.begin(), vec.end(), 3, 8);
	if (iterVec != vec.end())  
	{  
		cout << "在vec中找到3个连续的元素8" << endl;  
	}  
	else  
	{  
		cout << "在vec中没有3个连续的元素8" << endl;  
	}


	iterVec = search_n(vec.begin(), vec.end(), 3, 16, twice);  
	if (iterVec != vec.end())  
	{  
		cout << "在vec中找到3个连续元素的两倍为16" << endl;  
	}  
	else  
	{  
		cout << "在vec中没有3个连续元素的两倍为16" << endl;  
	}  

	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值