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(),//8foo2.end()) + 3) << endl;//找出foo1之中子序列foo2所出現的第一個位置,再往后3個位置的元素cout << *(find_first_of(foo1.begin(), foo1.end(), foo2.begin(),//7foo2.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 }?
轉載于:https://www.cnblogs.com/yuguangyuan/p/5845263.html
總結
- 上一篇: CSU 1806 Toll 自适应sim
- 下一篇: 解决WebClient或HttpWebR