注:博客内容均来自于对《C++标准库》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。
所有例程在Red Hat Linux 3.2.2-5版本上编译运行,g++的版本是 g++ (GCC) 3.2.2 20030222。
1、Deques
容器deque和vector非常相似。也是采用动态数组来管理元素,提供随机存取。并且有着和vector一样的接口。但是deque的动态数组头尾都是开放的,因此能在头尾两端进行快速的添加和删除操作。
deque通常实现为一组独立区块,第一区块向一方向扩展,最后一区块向另一方向扩展。
2、deque与vector的不同
3、deque的操作函数
4. deque例子
#include <iostream>
#include <deque>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;
int main(int argc, char *argv[])
{
deque<string> col1;
//向容器中添加3个字串
col1.assign(3, string("string"));
//在容器尾部添加字串
col1.push_back("last string");
//在容器头部添加字串
col1.push_front("first string");
//容器内容全部复制到输出流,打印容器内容
copy(col1.begin(), col1.end(),
ostream_iterator<string>(cout," "));
cout<<endl;
//删除容器头部元素
col1.pop_front();
//删除容器尾部元素
col.pop_back();
//从容器的第二个元素开始,每个元素前面追加字符"another"
for(int i = 1; i < col1.size(); ++i)
{
col1[i] = "another " + col1[i];
}
//容器内元素个数改为4个,不足的以"resized string"填充
col1.resize(4,"resized string");
//容器内容全部复制到输出流,打印容器内容
copy(col1.begin(), col1.end(),
ostream_iterator<string>(cout," "));
cout<<endl;
return 0;
}