• STL使用方法总结(入门)


    Iterator

    用于操作复杂的数据结构,类似于指针,指向数据结构的位置,*it用于读取数据

    关于嵌套容器的迭代器使用:

    set< vector<int> >::iterator it;

    for(it=s.begin();it!=s.end();it++)

    {

    vector<int> ivec=*it;

    for(vector<int>::iterator it2=ivec.begin();it2!=ivec.end();it2++)

    cout<<*it2<<",";

    ivec.clear();

    cout<<endl;

    }

    Vector

    可以随意插入,删除数据

    1. #include<vector>
    2. 定义及初始化

    vector<int> vec;

    Vector<int> vec(10);  指定元素个数

    Vector<int>vec(arr,arr+n);

    可以使用类似于数组的操作[]: vec[x];

      3.基本操作:

    Push_back() 添加到容器末尾

    Size()  获取元素数量

    Insert( pos, value)指定索引处插入元素

    Insert(pos,cnt,value)指定索引处添加cnt个 value元素

    Pop_back() 删除末位元素

    Begin() 第一元素的迭代器

    End() 迭代器

    Swap()    void swap(vector &other)将两个矢量的内容交换

      4.遍历

    下标法:vec[i]  

    迭代器法:

    Vector<int>::iterator it;

    For(it=vec.begin();it!=vec.end();it++)

    Cout<<*iterator;

    Stack

    1. #include<stack>
    2. 定义初始化

    Stack<string>s;

      3.基本操作:

    Push();

    Pop(); 删除栈顶元素

    Top(); 访问栈顶元素

    Empty();

    Queue

    1. #include<queue>
    2. Queue<int> q;
    3. Push(); 队尾插入

    Pop(); 删除第一个元素

    Empty();

    Size();

    Priopity_queue  

    优先队列,实现自动排序

    1. #include<queue>
    2. Priopity_queue<int,vector<int>,greater<int> >pq; 从小到大

    Priopity_queue<int,vector<int>,less<int> >pq; 从大到小

    Map

    元素默认按键的升序排列

    1. #include<map>
    2. Map<string,int>m;

    可以使用类似数组的操作[]: m[key]=value

        3.基本操作

    Insert( make_pair<string,int>(key,value) ) 在原map后继续插入键值对

    Insert( map<string,int>::value_type(key,value) ) 插入到map的最前面

    获取map的key,value要用到迭代器

    Map<string,int>::iterator it=m.begin(); 必须要获取迭代器首地址

    String key=it->first; int val=it->second; 键key是第一个,值value是第二个

    Erase(key); 根据key删除value

     

     

     

    Set

    元素默认升序排列

    1. #include<set>
    2. Set<int> s;

    初始化:用数组存放数据,然后用数组初始化set

    Int arr[5]={........};

    Set<int> s(arr,arr+5);

    自定义集合的排列顺序,编写class对象函数,判断大小:set<int,class> s;

        3.基本操作:

    Insert();

    Erase();

    Count(); 返回某个值元素的个数,也可用于判断集合中是否存在该值

    Find(); 返回一个指向被查到元素的迭代器

  • 相关阅读:
    freemarker的${!}
    什么是分布式消息中间件?
    Webservice工作原理及实例
    Nginx的一些基本功能
    dubbo与zookeeper的关系
    为什么推荐Zookeeper作注册中心
    ORACLE和MYSQL的简单区别
    SQL优化|Java面试题
    玩转 lua in Redis
    解决KafKa数据存储与顺序一致性保证
  • 原文地址:https://www.cnblogs.com/lidan-prime/p/9021764.html
Copyright © 2020-2023  润新知