首页 > 代码库 > vector 搜索
vector 搜索
http://classfoo.com/ccby/article/cIBahI
#include <iostream>#include <algorithm>#include <functional>#include <vector>// 用在此处是为了方便简洁, 在实际编程中慎用using namespace std;void main(){ int iarray[] = { 0, 1, 2, 3, 4, 5, 6, 6, 6, 7, 8 }; vector<int> foo1(iarray, iarray + sizeof(iarray) / sizeof(int)); int iarray1[] = { 6, 6 }; vector<int> foo2(iarray1, iarray1 + sizeof(iarray1) / sizeof(int)); int iarray2[] = { 5, 6 }; vector<int> foo3(iarray2, iarray2 + sizeof(iarray2) / sizeof(int)); int iarray3[] = { 0, 1, 2, 3, 4, 5, 7, 7, 7, 9, 7 }; vector<int> foo4(iarray3, iarray3 + sizeof(iarray3) / sizeof(int)); //找出foo1之中相邻元素值相等的第一个元素 cout << *adjacent_find(foo1.begin(), foo1.end()) << endl; //6 //找出foo1之中元素值为6的元素个数 cout << count(foo1.begin(), foo1.end(), 6) << endl; //3 //找出foo1之中小于7的元素个数 cout << count_if(foo1.begin(), foo1.end(), bind2nd(less<int>(), 7)) << endl;//9 //找出foo1之中元素值为4的第一个元素所在位置的元素 cout << *find(foo1.begin(), foo1.end(), 4) << endl;//4 //找出foo1之中大于2的第一个元素所在位置的元素 cout << *find_if(foo1.begin(), foo1.end(), bind2nd(greater<int>(), 2))//3 << endl; //找出foo1之中子序列foo2所出现的最后一个位置,再往后3个位置的元素 cout << *(find_end(foo1.begin(), foo1.end(), foo2.begin(),//8 foo2.end()) + 3) << endl; //找出foo1之中子序列foo2所出现的第一个位置,再往后3个位置的元素 cout << *(find_first_of(foo1.begin(), foo1.end(), foo2.begin(),//7 foo2.end()) + 3) << endl; //子序列foo3在foo1中出现的起点位置元素 cout << *search(foo1.begin(), foo1.end(), foo3.begin(), foo3.end())//5 << endl; //查找连续出现3个6的起点位置元素 cout << *search_n(foo1.begin(), foo1.end(), 3, 6, equal_to<int>()) << endl;//6 //判断两个区间foo1和foo4相等否(0为假,1为真) cout << equal(foo1.begin(), foo1.end(), foo4.begin()) << endl;//0 //查找区间foo4在foo1中不匹配点的位置 pair<std::vector<int>::iterator, std::vector<int>::iterator>result = mismatch(foo1.begin(), foo1.end(), foo4.begin()); cout << result.first - foo1.begin() << endl;//6}
vector 搜索
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。