zoukankan      html  css  js  c++  java
  • cb33a_c++_STL_算法_查找算法_(6)binary_search_includes

    cb33a_c++_STL_算法_查找算法_(6)binary_search_includes
    //针对已序区间的查找算法,如set,multiset关联容器-自动排序
    binary_search(b,e,v),begin,end,value--返回bool,不会告诉具体找到的位置。只能找一个
    if (binary_search(iset.begin(), iset.end(), 5))//返回bool
    binary_search(b,e,v,p) begin,end, value,parameter(谓词)

    includes(b,e,sb,se)--begin,end,second begin,second end.可以找多个,不连续的。查找对象必须是排序的,顺序存放的数据。
    if(includes(iset.begin(),iset.end(),search.begin(),search.end()))
    include (b,e,sb,se,p)--p,parameter,谓词

    lower_bound()--找到后,可以返回位置

     1 /*cb33a_c++_STL_算法_查找算法_(6)binary_search_includes
     2 //针对已序区间的查找算法,如set,multiset关联容器-自动排序
     3 binary_search(b,e,v),begin,end,value--返回bool,不会告诉具体找到的位置。只能找一个
     4 if (binary_search(iset.begin(), iset.end(), 5))//返回bool
     5 binary_search(b,e,v,p) begin,end, value,parameter(谓词)
     6 
     7 includes(b,e,sb,se)--begin,end,second begin,second end.可以找多个,不连续的。查找对象必须是排序的,顺序存放的数据。
     8 if(includes(iset.begin(),iset.end(),search.begin(),search.end()))
     9 include (b,e,sb,se,p)--p,parameter,谓词
    10 
    11 lower_bound()--找到后,可以返回位置
    12 */
    13 
    14 #include <iostream>
    15 #include <algorithm>
    16 #include <list>
    17 #include <set>
    18 #include <vector>
    19 
    20 using namespace std;
    21 
    22 int main()
    23 {
    24     list<int> ilist;
    25     for (int i = 1; i <= 9; ++i)
    26         ilist.insert(ilist.end(), i);//从后面插入
    27     ilist.push_back(8);
    28     set<int> iset;
    29     for (int ii = 2; ii <= 10; ++ii)
    30         iset.insert(iset.end(), ii);
    31     iset.insert(iset.end(),0);//即使在最后插入的0,它也会自动排序,0会移动到最前面的
    32     
    33     for (list<int>::iterator iter = ilist.begin(); iter != ilist.end(); ++iter)
    34         cout << *iter << ' ';
    35     cout << endl;
    36     cout << "set容器结果查看" << endl;
    37     for (set<int>::iterator iter = iset.begin(); iter != iset.end(); ++iter)
    38         cout << *iter << ' ';
    39     cout << endl;
    40 
    41     if (binary_search(iset.begin(), iset.end(), 5))//返回bool
    42         cout << "找到了" << endl;
    43     else
    44         cout << "没找到" << endl;
    45 
    46     vector<int> search;  //
    47     search.push_back(3);
    48     search.push_back(4);
    49     search.push_back(7);
    50     if(includes(iset.begin(),iset.end(),search.begin(),search.end()))
    51         cout<<"iset里面找 search vector的,3,4,7。同时都找到了"<<endl;
    52     //只要包含 3,4,7,就算找到了
    53     //注意,vector如果没有顺序排放,就会出错的。3,7,4就不可以。
    54     //已序区间,就是已经排序的区域。默认排序的,或者自动排序的容器
    55     else
    56         cout << "没找到" << endl;
    57 
    58 
    59     return 0;
    60 }
    欢迎讨论,相互学习。 txwtech@163.com
  • 相关阅读:
    笑话几则
    .net 知识点滴
    LoadRunner本机录制http协议程序遇到的问题以及解决方法
    40款非常棒的 jQuery 插件和制作教程(系列二)
    50个极佳的企业网站案例
    jQuery ui effects
    9个优秀网上免费标签云生成工具
    30 +创意的登录页面设计灵感
    分享一个jQuery的时间轴插件:TimergliderJS
    36个非常有趣的互动网站设计作品范例
  • 原文地址:https://www.cnblogs.com/txwtech/p/12337463.html
Copyright © 2011-2022 走看看