> 文档中心 > 成长随心记12(C++容器,stack,queue,list)

成长随心记12(C++容器,stack,queue,list)

4,stack容器
功能:与数据结构的栈类似
限制:不能遍历数据,只能访问栈顶元素

1)stack构造函数
函数原型:
stackstk//默认构造形式
stack(const stack &stk)//拷贝构造

2)stack赋值操作
函数原型:
stack& operator=(const stack& stk)//重载等号操作符

3)stack数据存取
函数原型:
stack.push(elem)//向栈顶添加元素
stack.pop()//从栈顶删除第一个元素
stack.top()//返回栈顶元素

4)stack大小操作
函数原型:
stack.empty()//判空
stack.size()//返回栈大小

------------------------------------------------------------------------------------------------------------------------------    

5,queue容器
功能:与数据结构的队列类似
限制:只能访问队头和队尾元素
1)queue构造函数
函数原型:
queue que//默认构造
queue(const queue& que)//拷贝构造

2)queue赋值操作
函数原型:
queue& operator(const queue &que)//重载等号操作符

3)queue数据存取
函数原型:
queue.push()//队尾添加元素
queue.pop()//队头删除元素
queue.back()//返回队尾元素
queue.front()//返回队头元素

4)queue大小操作
queue.empyt()//判空
queue.size()//返回队列大小

------------------------------------------------------------------------------------------------------------------------------    

6,list容器
功能:与数据结构的链表(双向链表)类似,具有链表的优缺点
性质:插入和删除操作不会造成list迭代器失效,vector中会失效(vector是重新分配空间)

1)list构造函数
函数原型:
listlst//默认构造
list(beg,end)//将[beg,end)区间的数据拷贝给本身
list(n,elem)//将n个elem拷贝给本身
list(const list &lst)//拷贝构造函数

2)list赋值和交换
函数原型:
assign(beg,end)//将[beg,end)区间的数据拷贝给本身
assign(n,elem)//将n个elem拷贝给本身
list& operator=(const list& lst)//重载等号赋值操作
swap(lst)//交换lst与本身的元素

3)list大小操作
函数原型:
list.empty()//判断容器是否为空
list.size()//返回容器元素个数
list.resize(num)//重新指定容器的长度为num,如果过长,则以默认值填充,如果过短,则删除超长部分
list.resize(int num,elem)//重新指定容器的长度为num,如果过长,则以elem填充,如果过短,则删除超长部分

4)list插入和删除
函数原型:
push_back(elem)//在容器尾部加入一个数据
push_front(elem)//在容器头部加入一个数据
pop_back()//删除容器中最后一个数据
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值匹配的元素

5)list数据存取
front()//返回第一个数据
back()//返回最后一个数据

6)list的反转和排序
reverse()//容器内元素的反转
sort()//容器内元素的排序