STL

来源:互联网 发布:淘宝易行堂 编辑:程序博客网 时间:2024/04/27 17:19

STL=STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称。它是容器、算法和一些其他组件的集合。


 STL分为容器,迭代器,空间配置器,配接器,算法,仿函数六个部分。



序列式容器

 向量(vector)连续存储的元素<vector>,可变长数组

       头文件:#include<vector>

       创建vector对象:vector<int>vec

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

       使用下标访问元素:cout<<vec[0]<<endl;下标应该从0开始

       使用迭代器访问元素: 

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

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

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

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

    向量大小:vec.size();

    清空:vec.clear();


列表(list)由节点组成的双向链表,每个节点包含着一个元素<list>(先进先出)

   头文件:#include<list>

   创建list对象:list<int>lis;

   返回第一个元素的引用:int n=lis.front();

   返回最后一个元素的引用:int n=lis.back();

   增加一元素到链表头:lis.push_front();

   增加一元素到链表尾:lis.push_back();

   删除链表头的第一个元素:lis.pop_front();

   删除链表尾的第一个元素:lis.pop_back();

   删除所有元素:lis.clear();

   判断链表是否为空:lis.empty();

   返回链表中元素个数:lis.size();

  返回第一个元素的指针:lis.begin();

  返回最后一个元素的下一个指针:lis.end();

 


*双向链表(deque)连续存储的直想不通元素的指针构成的数组<deque>


容器配置器

(stack)后进先出的值排序<stack>

    头文件:#include<stack>

     创建stack对象:stack<int>sta;

     sta.empty判断堆栈是否为空

     sta.pop   向堆栈里面压入一个数据

       sta.push ()       向堆栈压入一个数据

       sta.size()          返回当前堆栈长度(即内部数据个数)

      sta. top()           得到堆栈栈顶数据


队列(queue)先进先出的值排序<queue>

      头文件:#include<queue>

     创建一个queue对象:queue<int>que;

que.push(x) 将x压入队列的末端

que.pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值

que.front() 返回第一个元素(队顶元素)

que.back() 返回最后被压入的元素(队尾元素)

que.empty() 当队列为空时,返回true

que.size() 返回队列的长度


*优先队列(priority)<queue>


关联式容器

集合(set)<set>
*多冲集合(multiset)  <set>

映射(map)  <map>  由{键,值}对组成的集合

               根据键值自动排序,不允许有相同的键值。

               可以通过键值来对实值进行赋值。

              头文件#include<int>map;

               创建map对象:map<int>ma;

              map中不能用容器访问first和second,这两个元素是针对与pair类型的,所以应该是用迭代器指向一个元素,然后采用运算符->访问。
            ma.clear() 清空所有元素
          ma. empty() 判断是否为空,为空返回true(返回bool类型)
         ma. max_size() 返回可以容纳的最大元素个数
        ma. rbegin() 返回一个指向map尾部的逆向迭代器
         ma.rend() 返回一个指向map头部的逆向迭代器
         ma.size() 返回map中的元素的个数

*多重映射(multimap)  <map>
0 0
原创粉丝点击