zoukankan      html  css  js  c++  java
  • map,set的模板[STL]

    之前写某题单词查找的时候,有用到set,晚上写codeforces#497 div2 D题有用到map

    感觉set,map的功能挺类似的,在此小结;

    这里就不具体比较相同点和不同点了,免得看起来乱七八糟的,这里分别细说;

    set:

    #include <set>

    set<...>s;(类型可为int,char,string)

    功能主要有:

         插入元素;s.insert()

         查找元素;s.find()

         删除元素;s.erase()

         取出首尾元素;set<int>::iterator itor ;//这句一定要写!注意!
         itor=s.begin(); itor=s.end();

         itor!=s.end(); 可用来判断某个元素是否找到

    其中set本身,可定义排序;

    set<int, greater<int>> s;

    set<int, less<int> > s;

    插入,删除支持单个元素,或是一段区间,或是全部;可自定义;

    感觉某位大神的博客讲的非常详细,学习了;

     

    map

    定义#include <map>

    map<.. , ...>f;

    其中可为int ,或char,string

    因为map类似于hash,所以map中元素和射影是相对应的;

    分别举个例子好了:(可参见这里

         当你需要存的是整型数组中的数据,

         ai ->i;

         map<int ,int >b;

         简单的写,可以有 b[a[i]]=i;

         也就是说,b[]中的下标和它所对应的值都为int;

    char也是相同的意思

         当你需要存 b['abc']='defg';的时候你就要用 map<char ,char >b;

    map使用起来和set相似,同样可以插入元素,查找元素,删除元素

    插入可以简单的写为 b[a[i]]=..类似的写法

    查找和删除和set相同

    还是说一下自己感悟到的map和set的区别好了,map由于更趋近于hash,所以速度会比set要快很多,但是set的功能比map更完整

  • 相关阅读:
    如何实现EndNote中的PDF批量导出
    UltraEdit 编译输出中文乱码的解决办法
    史密斯(smith)圆图讲解
    OpenFlow
    网络虚拟化-简介
    java util包概述
    内存四区分析
    理解Java接口
    Ubuntu14.04安装wineqq国际版
    使用注解来构造IoC容器
  • 原文地址:https://www.cnblogs.com/polebug/p/4039297.html
Copyright © 2011-2022 走看看