• c++中stl容器的常用示例


    1、 set(集合)——包含了经过排序了的数据,这些数据的值(value)必须是唯一的。   

        也就是说输入set容器后得到数据,会去重并排序。
        s.insert()插入一个元素
        s.begin() s.end()分别返回首尾指针
        s.clear() 清空集合
       遍历需要利用迭代器set<类型>::iterator 变量名 ;

     

     

     

    2、stringstream(容器)—— 可以将放入其中的string串按空格分隔成单词(感觉就是一个过滤的)

     

     

     

    3、vector(不定长数组)——不需要定义初始长度的数组
        v.push_back()向尾部插入一个元素
        v.size()返回数组大小
        v.pop_back()删除最后一个元素
        v.insert(v[0]+i,a)在第i+1个元素后插入元素a
       常用的就这几个成员函数,看看粘的网上的介绍:

     基本操作

    (1)头文件#include<vector>.

    (2)创建vector对象,vector<int> vec;

    (3)尾部插入数字:vec.push_back(a);

    (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。

    (5)使用迭代器访问元素.

    vector<int>::iterator it;for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;

    (6)插入元素:    vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;

    (7)删除元素:    vec.erase(vec.begin()+2);删除第3个元素

    vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始

    (8)向量大小:vec.size();

    (9)清空:vec.clear();

     

     

     

     

    4、map(映射)——map就是从键(key)到值(value)的映射。例如可以这样用:
    先定义map<string,int> m;    赋值m["green"]=8 。看起来就是数组的高级版,可以改变下标的表示。
    当遇到让我们计算 一篇文章中某单词出现的次数时,(如果它只提问一次单词a出现的次数,那么我们直接遍历一次,但是如果它问了很多次时,总不能一遍遍遍历吧,会超时的)这时候就用到映射了。
    直接看示例:

     

     

     

     

    5、queue(队列)——“先进先出”的一种数据结构,感觉这些容器就是把数组改造,添加一些成员函数,使它用起来更方便些,理解的时候可以对照如果用数组实现这样的功能有多麻烦。
    其本操作:
    1、定义:queue<int> q;
    2、  q.push(a) 将元素a加入队列    
            q.front()访问首元素      
            q.back() 访问尾元素 
            q.pop() 删除首元素 
            q.size()返回元素个数
           q.empty()判断队列是否为空 

     

     

     

     

    6、stack(栈)——“先进后出”的一种数据结构,和队列类比看。 
    其本操作:
    1、定义:stack<int> s;
    2、  s.push(a) 将元素a压入栈    
            s.top()访问栈顶元素      
            s.pop() 删除栈顶元素 
            s.size()返回元素个数
            s.empty()判断栈是否为空 

     

     

     

    待续…… 

  • 相关阅读:
    tornado之运行第一个tornado程序
    Django之QuerySet 查询
    openstack之路:KVM/Libvirt 安装
    【原创】Linux基础之SSH隧道/端口转发
    【原创】运维基础之keepalived
    【原创】数据库基础之Mysql(2)主从库配置
    【原创】Linux基础之iptables
    【原创】大叔经验分享(28)ELK分析nginx日志
    【原创】算法基础之Anaconda(1)简介、安装、使用
    【原创】大数据基础之Airflow(1)简介、安装、使用
  • 原文地址:https://www.cnblogs.com/llsq/p/5785439.html
Copyright © 2020-2023  润新知