search

ForwardIterator1 search(ForwardIterator1 beg, ForwardIterator1 end, ForwardIterator2 searchBeg, ForwardIterator2 searchEnd);
ForwardIterator1 search(ForwardIterator1 beg, ForwardIterator1 end, ForwardIterator2 searchBeg, ForwardIterator2 searchEnd, BinaryPredicate op);

功能:

两种形式都返回第二个区间在第一个区间首次出现的位置(可以理解为:子区间在父区间首次出现的位置)


备注:
a、第一形式中,子区间元素必须完全等于[searchBeg, searchEnd)的元素
b、第二形式中,子区间元素和[searchBeg, searchEnd)的对应元素必须使op(elem, searchElem)结果为true
c、如果没有找到匹配子区间,两种形式都返回end
d、注意op在函数调用过程中不应该改变自身状态
e、op不应该改动传进来的参数

f、时间复杂度:线性

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

	vector<int> vec5;  
	vec5.push_back(8);  
	vec5.push_back(1);  

	vector<int>::iterator iterVec4 = search(vec4.begin(), vec4.end(), vec5.begin(), vec5.end());  
	if (iterVec4 != vec4.end())  
		cout << "vec4的元素包含在vec5容器中,起始元素为" << "vec4[" << iterVec4 - vec4.begin() << "]" <<endl;
	else  
		cout << "vec5的元素不包含在vec4容器" << endl;

	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值