C++中STL的容器适配器以及各容器的方法

一.容器适配器

1.stack

需要引入的头文件:

#include<stack>

初始化方式:

stack<int> stk;

成员函数介绍:

stk.empty();    //判断stack是否为空,为空返回true,否则返回false
stk.size();      //判断stack中元素的个数
stk.pop();      //删除栈顶元素,但不返回其值
stk.top();      //返回栈顶元素的值,但不删除此元素
stk.push(item)  //在栈顶压入新元素item

2.queue

需要引入的头文件:

#include<queue>;

初始化方式:

queue<int> q;

成员函数介绍:

q.empty();         //判断队列是否为空
q.size();          //返回队列长度
q.push(item);       //对于queue,在队尾压入一个新元素
                   //对于priority_queue,在基于优先级的适当位置插入新元素
q.front();          //返回队首元素的值,但不删除该元素
q.back();           //返回队尾元素的值,但不删除该元素

q.top();             //返回具有最高优先级的元素值,但不删除该元素

二、常用容器用法介绍

1.vector

需要引入的头文件:

#include<vector>
using namespace std;

初始化方式:

vector<int>obj;

成员函数介绍:

push_back     在数组的最后添加一个数据
pop_back      去掉数组的最后一个数据
at            得到编号的位置数据
begin         得到数组头的指针
end           得到数组的最后一个单元+1的指针
front         得到数组头的引用
back          得到数组的最后一个单元的引用
max_size      得到数组最大可以是多大
capacity      当前数组分配的大小
size          当前使用数据的大小
resize        改变当前使用数据的大小
reserve       改变当前vector所分配空间的大小
erase         删除指针指向的数据项
clear         清空当前的vector
rbegin        将vector反转后的开始指针返回(其实就是原来的end-1)
rend          将vector反转构的结束指针返回(其实就是原来的begin-1)
empty         判断vector是否为空
swap          与另一个vector交换数据

实际上vector是一个动态数组,这样就无需在使用前声明数组的大小,在使用中动态分配。

二维数组的定义:

int N=5, M=6; 
    vector<vector<int> > obj(N); //定义二维动态数组大小5行 
    for(int i =0; i< obj.size(); i++)//动态二维数组为5行6列,值全为0 
    { 
        obj[i].resize(M); 
    } 

2.deque

所谓的deque是”double ended queue”的缩写,双端队列不论在尾部或头部插入元素,都十分迅速。而在中间插入元素则会比较费时,因为必须移动中间其他的元素。双端队列是一种随机访问的数据类型,提供了在序列两端快速插入和删除操作的功能,它可以在需要的时候改变自身大小,完成了标准的C++数据结构中队列的所有功能。

需要引入的头文件:

#include<deque>

初始化方式:

deque<int> deq;

成员函数介绍:

deq[ ]:用来访问双向队列中单个的元素。
deq.front():返回第一个元素的引用。
deq.back():返回最后一个元素的引用。
deq.push_front(x):把元素x插入到双向队列的头部。
deq.pop_front():弹出双向队列的第一个元素。
deq.push_back(x):把元素x插入到双向队列的尾部。
deq.pop_back():弹出双向队列的最后一个元素。

3.list

需要引入的头文件:

#include <list>

初始化方式:

 list<int>lst1;          //创建空list

 list<int> lst2(5);       //创建含有5个元素的list

 list<int>lst3(3,2);  //创建含有3个元素的list

 list<int>lst4(lst2);    //使用lst2初始化lst4

 list<int>lst5(lst2.begin(),lst2.end());  //同lst4

成员函数介绍:

l.assign()    给list赋值
l.back()      返回最后一个元素
l.begin()     返回指向第一个元素的迭代器
l.clear()     删除所有元素
l.empty()     判断list是否为空
l.end()       返回末尾的迭代器
l.erase()     删除一个元素
l.front()     返回第一个元素
l.insert()    插入一个元素到list中
l.max_size()  返回list能容纳的最大元素数量
l.merge()     合并两个list
l.pop_back()  删除最后一个元素
l.pop_front() 删除第一个元素
l.push_back() 在list的末尾添加一个元素 
l.push_front() 在list的头部添加一个元素 
l.resize()    改变list的大小
l.reverse()   把list的元素倒转 
l.size()      返回list中的元素个数 
l.sort()      给list排序 
l.splice()    合并两个list 
l.swap()      交换两个list 
l.unique()   删除list中相邻重复的元素

3.map

需要引入的头文件:

#include<map>

初始化方式:

map<int,string>  ID_Name;


map<int, string> ID_Name = {
                { 2015, "Jim" },
                { 2016, "Tom" },
                { 2017, "Bob" } };

成员函数介绍:

     begin()         返回指向map头部的迭代器

     clear()        删除所有元素

     count()         返回指定元素出现的次数

     empty()         如果map为空则返回true

     end()           返回指向map末尾的迭代器

     equal_range()   返回特殊条目的迭代器对

     erase()         删除一个元素

     find()          查找一个元素

     get_allocator() 返回map的配置器

     insert()        插入元素

     key_comp()      返回比较元素key的函数

     lower_bound()   返回键值>=给定元素的第一个位置

     max_size()      返回可以容纳的最大元素个数

     rbegin()        返回一个指向map尾部的逆向迭代器

     rend()          返回一个指向map头部的逆向迭代器

     size()          返回map中元素的个数

     swap()           交换两个map

     upper_bound()    返回键值>给定元素的第一个位置

     value_comp()     返回比较元素value的函数

4.set

1. begin()--返回指向第一个元素的迭代器

2. clear()--清除所有元素

3. count()--返回某个值元素的个数

4. empty()--如果集合为空,返回true

5. end()--返回指向最后一个元素的迭代器

6. equal_range()--返回集合中与给定值相等的上下限的两个迭代器

7. erase()--删除集合中的元素

8. find()--返回一个指向被查找到元素的迭代器

9. get_allocator()--返回集合的分配器

10. insert()--在集合中插入元素

11. lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器

12. key_comp()--返回一个用于元素间值比较的函数

13. max_size()--返回集合能容纳的元素的最大限值

14. rbegin()--返回指向集合中最后一个元素的反向迭代器

15. rend()--返回指向集合中第一个元素的反向迭代器

16. size()--集合中元素的数目

17. swap()--交换两个集合变量

18. upper_bound()--返回大于某个值元素的迭代器

19. value_comp()--返回一个用于比较元素间的值的函数

原文链接: https://www.cnblogs.com/hj-SAMA/p/12304070.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++中STL的容器适配器以及各容器的方法

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/193073

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午6:15
下一篇 2023年2月12日 下午6:15

相关推荐