zoukankan      html  css  js  c++  java
  • 容器 set

    SET 是个有序表!他会根据INSERT的数值自动排序! 

    SET里面不可能出现相同的元素!SET在insert的时候会排重的!

    SET本质上是一种树结构,在检索上比链表快,插入比数组方便,但是不允许重复!

     (1) 

    set_difference(MyTestContain.begin(),MyTestContain.end(),MyTestContain2.begin(),MyTestContain2.end(),
                       insert_iterator<set<string> >(MyTestContain3,MyTestContain3.begin())
                       );

    insert_iterator<set<string> >

    <string> 后面的空格一定要打!

     insert_iterator<set<string> >(MyTestContain3,MyTestContain3.begin()) 只能这么将合并后的集合插入新的集合!

    (2)lowerbound 和 upperbond

     copy(MyTestContain3.lower_bound("a"),MyTestContain3.upper_bound("u"),myout);

    剔除<"u" 和>="a" 的。。。。。???半包围!

    (3) 访问元素:

    MyPairSet::iterator pr;
    cout<<endl<<"MyPairSet:"<<endl;
    for(pr=MyPairContain.begin();pr!=MyPairContain.end();pr++)
    {
    MyPair Pr2(*pr);                //特别注意这句话:MyPairSet::iterator 和 MyPairSet * 是不能互相转换的,但是他们的*都是MyPairSet ,所以不能把迭代器转换为指针,只能取内容以后转换为元素。
    cout<<Pr2.first<<"_"<<Pr2.second<<" ;";

    }

    (4) 搜索元素: 和上面一样,返回迭代器

    MyPair Pr3;
    Pr3=MyPair(*MyPairContain.find(Pr2));
    cout<<Pr3.first<<"_"<<Pr3.second;

    (5) equal_range  定位器

    第一个 >= 给定关键字的元素

    第一个 > 给定关键字的元素

    pair <MyPairSet::const_iterator ,MyPairSet::const_iterator> IterPair;

    MyPair ps=*MyPairContain.begin();

    IterPair=MyPairContain.equal_range(ps);

    cout<<endl<<"the pair is"<<endl;

    cout<<((MyPair)(* (IterPair.first))).first<<"_"<<((MyPair)(* (IterPair.first))).second<<endl;

    cout<<((MyPair)(* (IterPair.second))).first<<"_"<<((MyPair)(* (IterPair.second))).second<<endl;

  • 相关阅读:
    AHOI2012 信号塔 | 最小圆覆盖模板
    BZOJ1337 最小圆覆盖
    HAOI2014 走出金字塔
    HAOI2012 外星人
    HAOI2014 遥感监测
    HAOI2012 道路
    NOI2007 社交网络
    HAOI2012 高速公路
    HAOI2012 容易题
    HAOI2011 Problem c
  • 原文地址:https://www.cnblogs.com/gaoxianzhi/p/3242133.html
Copyright © 2011-2022 走看看