STL之stack&queue容器
模版类stack,它是一个后进现出的容器适配器--即自己不直接维护被控序列的模版类,而是它存储的容器对象来为它实现所有的功能;typedef stack>> mycont;默认的参数中容器是用deque实现的;被包含的容器要满足提供value_type,size_type,empt,size, push_back,pop_back;可选择的容器有list,deque,vecto
模版类stack,它是一个后进现出的容器适配器--即自己不直接维护被控序列的模版类,而是它存储的容器对象来为它实现所有的功能;
typedef stack<T,deque<T,allocator<T>>> mycont;
默认的参数中容器是用deque实现的;被包含的容器要满足提供value_type,size_type,empt,size, push_back,pop_back;可选择的容器有list,deque,vector;要求有最快的平均访问速度,而且大概的容量要求也清楚(比较 衡定),那么,使用vector是个不错的选择 要求每次的访问时间平稳,而不在乎平均访问时间时,那么,可以考虑使用list;所以,库默认的deque是个不错的选择,它介于vector和list 之间,并且很好的综合了两者的优势;
构造函数:
stack() 声明一个空栈;
stack(mycont) 声明一个初始内容复制自mycont的栈;
函数:
push 将一个新元素压倒栈中;
pop 弹出栈中的元素,如果栈为空,结果未定义,函数返回void;
top 存取栈的顶端元素,如果栈为空,结果未定义,返回的是一个引用;
empty 测试栈是否为空;
size 获得栈中元素的个数;
常用的六个比较函数;
queue和priority_queue都是容器适配器,queue实现的是先进现出一个队列,priority_queue也是一个队列不过该 模版类可以保证每次通过pop从它里面取得的元素都是剩下元素中优先级最高的,在每次通过push添加元素时,整个序列都会在必要时进行重排,它使用堆算 法保持序列的有序化。
typedef queue<T,deque<T,allocator<T>>> mycont;
构造函数:
queue() 声明一个空队列;
queue(mycont) 声明一个队列它的初始内容复制自mycont;
push 将一个新元素接到队列的末端;
pop 弹出队列中的第一个元素,返回的是一个void;
front back 存取队列中的第一个元素和最后一个元素,返回的是一个引用;
empty 测试队列是否为空;
size 获得队列中元素的个数;
常见的六种比较操作;
typedef priority_queue<T,vector<T,allocator<T>>,less<T>>mycont;
构造函数:
priority_queue() 声明一个按pred()排序的空优先队列;
priority_queue(pr) 声明一个按函数对象pr排序的空优先队列;
priority_queue(pr,mycont), 声明一个按pr排序的优先队列,它的初始内容是从mycont中复制过来并排序的;
priority_queue(first,last) 声明一个按pred()排序的优先队列,初始内容从指定序列中复制过来的;
priority_queue(first,last,pr) 声明一个按pr排序的优先队列,它的初始内容是从指定的序列中复制过来并排序的;
priority_queue(first,last,mycont,pr) 声明一个按pr排序的优先队列,它的初始内容复制从mycont中指定的段并排序;
push 向优先队列中压入一个新元素;
pop 从优先队列中弹出它的顶端元素,返回值是void;
top 存取优先队列中顶端的元素,返回的是一个常量的引用;
empty size 测试优先队列是否为空;获得优先队列中元素的个数;
常用的六种比较操作;
更多推荐
所有评论(0)