#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
请按任意键继续. . .

c++ STL find search的更多相关文章

  1. stl binary search

    stl binary search */--> pre { background-color: #2f4f4f;line-height: 1.6; FONT: 10.5pt Consola,&q ...

  2. STL之search

    描述 使用STL中的search函数,判断一个序列是否是另一个序列的子序列. 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码. int main() { vector<int> ...

  3. leetcode@ [34] Search for a Range (STL Binary Search)

    https://leetcode.com/problems/search-for-a-range/ Given a sorted array of integers, find the startin ...

  4. C++ STL Binary search详解

    一.解释 以前遇到二分的题目都是手动实现二分,不得不说错误比较多,关于返回值,关于区间的左闭右开等很容易出错,最近做题发现直接使用STL中的二分函数方便快捷还不会出错,不过对于没有接触过的同学,二分函 ...

  5. STL 简介,标准模板库

    这篇文章是关于C++语言的一个新的扩展--标准模板库的(Standard Template Library),也叫STL.  当我第一次打算写一篇关于STL的文章的时候,我不得不承认我当时低估了这个话 ...

  6. STL中list用法

    本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂.不失为STL的入门文章,新手不容错过! 0 前言 1 定义一个list 2 使用list的成员函 ...

  7. STL list链表的用法详解

    本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂.不失为STL的入门文章,新手不容错过! 0 前言 1 定义一个list 2 使用list的成员函 ...

  8. list用法详解

    在这里感谢大牛们的奉献!此致敬礼! 本文转载自百度文库.作者如下.其中下面的count, count_if等函数的使用有些陈旧,如在编译时遇到问题,请百度. 标准模板库(STL)介绍 作者:Scott ...

  9. AwesomePerfCpp 性能优化

    Contents Talks Articles Sites/Blogs Tools Libraries Books About Talks 2013: Going Native 2013 - Andr ...

随机推荐

  1. c# 选择结构

  2. idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

    一.负载均衡算法原理与实战 负载均衡算法(load balancing algorithm),定义了几种基本的流量分发方式,在Istio中一共有4种标准负载均衡算法. •Round_Robin: 轮询 ...

  3. XPath 爬虫解析库

    XPath     XPath,全称 XML Path Language,即 XML 路径语言,它是一门在 XML 文档中查找信息的语言.最初是用来搜寻 XML 文档的,但同样适用于 HTML 文档的 ...

  4. 解决python中调用 imread 报错:ImportError: cannot import name imread

    安装了scipy后,报cannot import name imread错误, 1.网上查阅资料后说是需要安装pillow,安装pillow之后,仍然报该错误, 2.网上说是pillow与SciPy安 ...

  5. Python+request 分模块存放接口,多接口共用参数URL、headers的抽离,添加日志打印等《三》

    主要介绍内容如下: 1.分模块存放接口 2.多接口共用参数URL.headers的抽离为配置文件 3.添加日志打印 4.一个py文件运行所有所测的接口 如上介绍内容的作用: 1.分模块存放接口:方便多 ...

  6. confluent_kafka消费时内存泄漏

    confluent_kafka测试的内存泄漏的条件 多线程消费 centos6 预测和centos6底层库存在关系. 换用centos7(我是换了7.3)就行了. (起初以为是代码问题,定位问题位置后 ...

  7. 洛谷P1341 无序字母对【欧拉路】【dfs】

    题目:https://www.luogu.org/problemnew/show/P1341 题意:给定n对字母对,要求构造一个个数为n+1的字符串,使得每一个字母对都在里面出现过. 思路:这种题目都 ...

  8. C#中的@符号的使用

    一 字符串中的用法 字符@表示,其后的字符串是个“逐字字符串”(verbatim string). @只能对字符串常量作用. 1.用于文件路径 string s_FilePath ="C:\ ...

  9. Java中通过Array.sort()对数组从大到小排序

    package com.itheimajavase; import java.util.Arrays; import java.util.Comparator; public class Day01 ...

  10. P4295 [SCOI2003]严格N元树 DP

    思路:DP 提交:\(5\)次 错因:2次高精写错(我太菜了),2次写错特判 题解: 设\(f[i]\)表示深度\(\leq i\)的严格\(n\)元树的数目,有 \[f[i]=pow(f[i-1], ...