STL容器之deque
2012-06-26 14:51
218 查看
deque是double-ended queue的简称,是一种类似vector的容器,提供随机访问功能,与vector不同的是,deque可以实现在头部和尾部两端插入元素。
deque提供的操作和vector很相似,列出如下:
Constructors 创建一个新双向队列
构造函数有如下原型:
deque();//无参
deque( size_type size );//构造n个元素的deque
deque( size_type num, const TYPE &val );//构造n个元素初始化为val的deque
deque( const deque &from );//初始化为另一个deque的副本
deque( input_iterator start, input_iterator end );//用两个迭代器指定的范围的元素初始化
assign() 设置双向队列的值
at() 返回指定的元素
back() 返回最后一个元素
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
empty() 返回真如果双向队列为空
end() 返回指向尾部的迭代器
erase() 删除一个元素
front() 返回第一个元素
get_allocator() 返回双向队列的配置器
insert() 插入一个元素到双向队列中
max_size() 返回双向队列能容纳的最大元素个数
pop_back() 删除尾部的元素
pop_front() 删除头部的元素
push_back() 在尾部加入一个元素
push_front() 在头部加入一个元素
rbegin() 返回指向尾部的逆向迭代器
rend() 返回指向头部的逆向迭代器
resize() 改变双向队列的大小
size() 返回双向队列中元素的个数
swap() 和另一个双向队列交换元素
下面是使用部分deque函数的实例代码:
运行结果如下图:
deque提供的操作和vector很相似,列出如下:
Constructors 创建一个新双向队列
构造函数有如下原型:
deque();//无参
deque( size_type size );//构造n个元素的deque
deque( size_type num, const TYPE &val );//构造n个元素初始化为val的deque
deque( const deque &from );//初始化为另一个deque的副本
deque( input_iterator start, input_iterator end );//用两个迭代器指定的范围的元素初始化
assign() 设置双向队列的值
at() 返回指定的元素
back() 返回最后一个元素
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
empty() 返回真如果双向队列为空
end() 返回指向尾部的迭代器
erase() 删除一个元素
front() 返回第一个元素
get_allocator() 返回双向队列的配置器
insert() 插入一个元素到双向队列中
max_size() 返回双向队列能容纳的最大元素个数
pop_back() 删除尾部的元素
pop_front() 删除头部的元素
push_back() 在尾部加入一个元素
push_front() 在头部加入一个元素
rbegin() 返回指向尾部的逆向迭代器
rend() 返回指向头部的逆向迭代器
resize() 改变双向队列的大小
size() 返回双向队列中元素的个数
swap() 和另一个双向队列交换元素
下面是使用部分deque函数的实例代码:
#include <iostream> #include <deque> #include <string> using namespace std; void show(deque<string>& d) { cout << "deque: "; if(d.empty()) cout << "EMPTY" << endl; else for(deque<string>::iterator it = d.begin(); it != d.end(); ++ it) cout << *it << ' '; cout << endl; } int main() { deque<string> dque; deque<string>::iterator pos; // push_pack, push_front some elements dque.push_back("Ronnie"); dque.push_front("John"); dque.push_front("Mark"); // show deque show(dque); // show front element and back element cout << "front: " << dque.front() << endl; cout << "back: " << dque.back() << endl; pos = dque.begin(); // earse element at pos dque.erase(pos); cout << "after erase, front: " << dque.front() << endl; show(dque); // use operator[] cout << "dque[1]: " << dque[1] << endl; // use function size() cout << "size: " << dque.size() << endl; // use function at() cout << "dque.at(0): " << dque.at(0) << endl; //use clear dque.clear(); cout << "after clear, size: " << dque.size() << endl; show (dque); }
运行结果如下图:
相关文章推荐
- 【留坑】UVA246 模拟题,STL容器组合_deque&&(set判重 OR hash判重)
- STL容器 vector,list,deque 性能比较
- STL之deque容器的实现框架
- STL容器:deque
- STL容器之deque双向队列
- STL提供了三个最基本的容器:vector,list,deque。
- STL概览-序列容器vector,deque,list
- C++ STL基本容器string,vector,list,deque,map..[转]
- 【STL】容器 > 顺序容器 > deque(双端队列)
- STL-学习笔记:顺序容器之deque
- STL之deque容器详解
- stl之deque双端队列容器
- STL之deque容器的剖析
- STL序列式容器 - deque
- STL常用容器总结——deque双向队列
- STL-deque容器
- STL容器——vector和deque
- C++ STL 序列性容器之 std::deque 容器
- STL标准库Deque容器
- STL - 容器 - Deque