zoukankan      html  css  js  c++  java
  • C++ STL之map常用指令

    只记载本人在ACM中常用的函数。

    map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力。

    map内部为一颗红黑树。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。

    1、初始化

    map<int, string> m;

    2、插入元素

    m[1] = "aaa";

    m[2] = "bbb";

    m.insert (map<int, string> :: value_type(3, "ccc"));  //因为上面那种插入方法是先在m里插入关键字2,此时将值元素为缺省值,然后再对值元素赋值                               //所以如果值元素是类的话,下面这种插入方式时间开销比较小。

    3、[]访问

    string s = m[1];  //使用前先用find或者count来判断map中是否含有关键值1

    4、find查找

    map<int, string>::iterator it = m.find(3);        //find返回的是迭代器,而该迭代器指向的数据类型是pair
    if (it == m.end()) tst ("no");
    else cout << it->first << " " << it->second << endl;

    5、count计数

    int num = m.count(3);  //返回m中有多少个关键字为3,此处只可能是1或0

    6、erase删除

    1. iterator erase(iterator it); //通过一个条目对象删除
    2. iterator erase(iterator first, iterator last);        //删除一个范围
    3. size_type erase(const Key& key); //通过关键字删除

    7、clear清空

    8、empty容器为空返回true

    9、size返回元素个数

    9、lower_bound返回键值>=给定元素的第一个位置(迭代器)

    10、upper_bound返回键值>给定元素的第一个位置(迭代器)

    推荐文章http://www.cppblog.com/xkjy3000/archive/2012/06/20/179518.aspx

    ------------------------------------------------------------------
    现在的你,在干什么呢?
    你是不是还记得,你说你想成为岩哥那样的人。
  • 相关阅读:
    FineReport——函数
    FineReport——插入行策略
    FineReport——JS二次开发(CSS改变控件样式)
    FineReport——JS二次开发(下拉框)
    汽车系统
    Ubuntu Software setup
    Win 10 乱码 & 字体横过去了
    U-boot 2016.11 代码结构 dra7xx
    samba Ubuntu 16.04
    ftp Ubuntu16.04
  • 原文地址:https://www.cnblogs.com/plumrain/p/stl_map.html
Copyright © 2011-2022 走看看