zoukankan      html  css  js  c++  java
  • c++ STL find search

    #include <iostream>
    #include <algorithm>
    #include <deque>
    #include <list>
    #include <vector>
    #include <functional>

    using namespace std;

    //二元谓词
    bool isEven(int elementParam, bool even)
    {
      if (even)
      {
        return elementParam % 2 == 0;
      }
      else
      {
        return elementParam % 2 == 0;
      }

    }

    int main()
    {
      deque<int> deque1;
      list<int> list1;

      for (int k=0;k<10;k++)
      {
        deque1.insert(deque1.end(),k);
      }

      for (int k = 1; k<11; k++)
      {
        deque1.insert(deque1.end(), k);
      }

      for (int k = 3; k<10; k++)
      {
        deque1.insert(deque1.end(), k);
      }

      deque<int>::iterator deque_iter;
      for (deque_iter = deque1.begin();deque_iter != deque1.end();++deque_iter)
      {
        cout << *deque_iter << " ";
      }
      cout << endl;

      for (int k=4;k<10;k++)
      {
        list1.push_back(k);
      }

      list<int>::iterator list_iter1;
      for (list_iter1 = list1.begin();list_iter1 != list1.end();++list_iter1)
      {
        cout << *list_iter1 << " ";
      }
      cout << endl;

      deque<int>::iterator deque_iter1;
      deque_iter1 = search(deque1.begin(), deque1.end(), list1.begin(), list1.end());
      while (deque_iter1 != deque1.end())
      {
        cout << "find ! element position:" <<distance(deque1.begin(),deque_iter1)+1<< endl;
        ++deque_iter1;
        deque_iter1 = search(deque_iter1, deque1.end(), list1.begin(), list1.end());
      }

      cout << "------------------------------------------------" << endl;
      vector<int> vector1;
      for (int k=0;k<10;k++)
      {
        vector1.push_back(k);
      }

      vector1.push_back(10);
      vector1.push_back(12);
      vector1.push_back(14);
      
      vector<int>::iterator vector_iter1;
      for (vector_iter1 = vector1.begin();vector_iter1 != vector1.end();++vector_iter1)
      {
        cout << *vector_iter1 << " ";
      }
      cout << endl;

      bool checkEventArgs[3] = { true,false,true };
      vector<int>::iterator vector_iter2;
      vector_iter2 = search(vector1.begin(), vector1.end(),checkEventArgs,checkEventArgs+3, isEven);

      if (vector_iter2 != vector1.end())
      {
        cout << "find:" << *vector_iter2 << endl;
      }
      else
      {
        cout << "not find.." << endl;
      }

      system("pause");
      return 0;
    }

    =====================================================

    0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10 3 4 5 6 7 8 9
    4 5 6 7 8 9
    find ! element position:5
    find ! element position:14
    find ! element position:22
    ------------------------------------------------
    0 1 2 3 4 5 6 7 8 9 10 12 14
    find:10
    请按任意键继续. . .

  • 相关阅读:
    解决CentOS 7 history命令不显示操作记录的时间和用户身份问题
    CentOS7关闭selinux
    Centos7下添加开机自启动服务和脚本
    快速查看一个文件的权限 stat -c %a
    修改centos7系统语言
    sudo
    chsh命令 修改用户登录shell
    忘记root开机密码及怎样开启密码远程连接模式
    centos7系统中添加 pstree 命令
    vim 多行添加注释,取消注释
  • 原文地址:https://www.cnblogs.com/herd/p/11004439.html
Copyright © 2011-2022 走看看