zoukankan      html  css  js  c++  java
  • pair,map,set<<0924

    生成pair类型对象的三种方法

    pair<string, int> word;
    word.first = "hello";
    word.second = 12;
    
    pair<string, int> word2("world", 13);
    
    pair<string, int> word3;
    word3 = make_pair<string, int>("foo", 15);
    
    

    map

    • map为一个容器,里面是有序的pair对象,其中的元素可以用迭代器遍历,也可以使用for (pair<> &p : m)来遍历;

    • map的插入和查询和插入都可以直接使用下标,但使用下标来查询极不安全,因为当下标表达式一写出来,若没有这个key值,会自动插入一个value为0 的pair对象,使用下标插入的时候,也无法获知是否已存在这个key值

    • 利用上面的那个特性,在统计词频的时候,直接使用

        while(cin -> word)
        	words[word] ++;
      

      就OK。

    • 为了解决上面的问题,可以使用m.insert(make_pair())函数来解决插入的问题,它返回一个pair对象ret,其中ret.second在key值已经存在的情况下,会返回false,ret.first保存这个key值得迭代器,相反,若key不存在,会插入这个pair,first为m.end(),secend为ture

    • m.count(key)函数返回key值出现的次数,若key存在则返回1,否则返回0

    • m.find(key)返回找到key值得迭代器,或者m.end();

    set

    • set<> s;使用s.insert()来插入元素,自动排序
    • s.find(key);实现查询返回该key的迭代器

    map和set比较:

    • 二者均使用红黑树实现
    • key需要支持<操作
    • map侧重于key-value的快速查找
    • set侧重于查看元素是否存在
    • map和set中的元素无法排序。
  • 相关阅读:
    apk逆向工具总结
    DAY...
    DAY1-Flask项目
    Django笔记
    DAY8-Python学习笔记
    DAY7-Python学习笔记
    DAY6-Python学习笔记
    DAY5-Python学习笔记
    DAY4-Python学习笔记
    DAY3-Python学习笔记
  • 原文地址:https://www.cnblogs.com/sunstars/p/3991890.html
Copyright © 2011-2022 走看看