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
}

 

原文链接: https://www.cnblogs.com/yuguangyuan/p/5845263.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    vector 搜索

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/398208

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月11日 上午9:56
下一篇 2023年4月11日 上午9:57

相关推荐