• 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
  • 相关阅读:
    JS 实现图片模态框,幻灯片,跑马灯功能
    JavaScript 实现表格单列按字母排序
    JavaScript 进度条重复加载
    JS / CSS 实现的便签记录本
    HTML CSS, JavaScript 计算器
    JS/CSS 各种操作信息提示效果
    JS/CSS 在屏幕底部弹出消息
    Immer 实战讲解
    mixin配合class实现多继承的绝佳妙用
    Axios源码深度剖析
  • 原文地址:https://www.cnblogs.com/txwtech/p/12337463.html
Copyright © 2020-2023  润新知