stack容器
概念:stack是一种先进后出的数据结构,它只有一个出口
stack常用接口
功能描述:栈容器常用的对外接口
构造函数:
stack<T> stk; //stack采用模板类实现,stack对象的默认构造形式
stack(const stack &stk); //拷贝构造函数
赋值操作:
stack& operator = (const stack &stk); //重载等号操作符
数据存取:
push(elem); //向栈顶添加元素
pop(); //从栈顶移除第一个元素
top(); //返回栈顶元素
大小操作:
empty(); //判断堆栈是否为空
size(); //返回栈的大小
queue容器
概念:Queue是一种先进先出的数据结构,它有两个出口
queue常用接口
功能描述:栈容器常用的对外接口
构造函数:
queue<T> que; //queue采用模板类实现,queue对象的默认构造形式
queue(const queue &que); //拷贝构造函数
赋值操作:
queue& operator=(const queue &que); //重载等号操作符
数据存取:
push(elem); //往队尾添加元素
pop(); //从队头移除第一个元素
back(); //返回最后一个元素
front(); //返回第一个元素
总结:
入队---push
出队---pop
返回队头元素---front
返回队尾元素---back
判断队尾元素---empty
返回队列大小---size
list容器
功能:将数据进行链式存储
链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表有一系列结点组成
结点的组成:一个存储数据元素的数据域,另一个是存储下一个结点地址的指针域
STL中的链表是一个双向循环链表
函数原型:
list<T>lst; //list采用采用模板类实现,对象的默认构造形式
list(beg,end); //构造函数将[beg,end]区间中的元素拷贝给本身
list(n,elem); //构造函数将n个elem拷贝给本身
list(const list &lst); //拷贝构造函数
list赋值和交换
功能描述:
给list容器进行赋值,以及交换list容器
函数原型:
assign(beg,end); //将[beg,end]区间中的数据拷贝赋值给本身
assign(n,elem); //将n个elem拷贝赋值给本身
list& operator=(const list &lst); //重载等号操作符
swap(lst); //将lst与本身的元素互换
list大小操作
功能描述:
对list容器的大小进行操作
函数原型
size(); //返回容器中元素的个数
empty(); //判断容器是否为空
resize(num); //重新指定容器的长度为num,若容器变长,则以默认值填充新位置。
//如果容器变短,则末尾超出容器长度的元素被删除
resize(num,elem); //重新指定容器的长度为num,若容器变长,则以elem值填充新位置
//如果容器变短,则末尾超出容器长度的元素被删除
list插入和删除
函数原型:
push_back(elem);//在容器尾部加入一个元素
pop_back();//删除容器中最后一个元素
push_front(elem);//在容器开头插入一个元素
pop_front();//从容器开头移除第一个元素
insert(pos,elem);//在pos位置插elem元素的拷贝,返回新数据的位置
insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值
insert(pos,beg,end);//在pos位置插入[beg,end]区间的数据,无返回值
clear();//移除容器的所有数据
erase(beg,end);删除[beg,end]区间的数据,返回下一个数据的位置。
erase(pos);//删除pos位置的数据,返回下一个数据的位置
remove(elem);//删除容器中所有与elem值匹配的元素
list数据存取
函数原型:
front(); //返回第一个元素
back(); //返回最后一个元素
list反转和排序
函数原型:
reverse(); //反转链表
sort(); //链表排序
set/multiset容器
set和multiset区别
set不允许容器中有重复的元素
multiset允许容器中有重复的元素
set大小交换
函数原型:
size(); //返回容器中元素的数目
empty(); //判断容器是否为空
swap(st); //交换两个集合容器
set插入和删除
函数原型
insert(elem); //在容器中插入元素
clear(); //清除所有元素
erase(pos); //删除pos选代器所指的元素,返回下一个元素的选代器。
erase(beg,end); //删除区间[beg,end]的所有元素,返回下一个元素的选代器
erase(elem); //删除容器中值为elem的元素
set查找和统计
函数原型
find(key); //查找key是否存在,若存在,返回该键的元素的选代器;若不存在,返回set.end();
count(key); //统计key的元素个数
set和multiset区别
区别:
set不可以插入重复数据,而multiset可以
set插入数据的同时会返回插入结果,表示插入是否成功
multiset不会检测数据,因此可以插入重复数据
pair对组创建
两种创建方式:
pair<type,type> p (value1, value2);
pair<type,type> p = make_pair(value1,value2);