STL之Deque
来源:互联网 发布:数据库远程连接 编辑:程序博客网 时间:2024/06/11 10:25
函数
描述
assign(beg,end)
assign(n,elem)
将[beg; end)区间中的数据赋值给c。
将n个elem的拷贝赋值给c。
c.at(idx)
传回索引idx所指的数据,如果idx越界,抛出out_of_range。
back()
传回最后一个数据,不检查这个数据是否存在。
begin()
传回迭代器重的可一个数据。
clear()
移除容器中所有数据。
deque<Elem> c
deque<Elem> c1(c2)
Deque<Elem> c(n)
Deque<Elem> c(n, elem)
Deque<Elem> c(beg,end)
c.~deque<Elem>()
创建一个空的deque。
复制一个deque。
创建一个deque,含有n个数据,数据均已缺省构造产生。
创建一个含有n个elem拷贝的deque。
创建一个以[beg;end)区间的deque。
销毁所有数据,释放内存。
empty()
判断容器是否为空。
end()
指向迭代器中的最后一个数据地址。
erase(pos)
erase(beg,end)
删除pos位置的数据,传回下一个数据的位置。
删除[beg,end)区间的数据,传回下一个数据的位置。
front()
传回地一个数据。
get_allocator
使用构造函数返回一个拷贝。
insert(pos,elem)
insert(pos,n,elem)
insert(pos,beg,end)
在pos位置插入一个elem拷贝,传回新数据位置。
在pos位置插入n个elem数据。无返回值。
在pos位置插入在[beg,end)区间的数据。无返回值。
max_size()
返回容器中最大数据的数量。
pop_back()
删除最后一个数据。
pop_front()
删除头部数据。
push_back(elem)
在尾部加入一个数据。
push_front(elem)
在头部插入一个数据。
rbegin()
传回一个逆向队列的第一个数据。
rend()
传回一个逆向队列的最后一个数据的下一个位置。
resize(num)
重新指定队列的长度。
size()
返回容器中实际数据的个数。
swap(c2)
Swap(c1,c2)
将c1和c2元素互换。
同上操作。
例程:
// 作者:ychw365// 测试 deque 由于和vector 类似注视简写#include "stdafx.h"#include<iostream> #include <deque>using namespace std; typedef deque<int> INTDEQUE;INTDEQUE deque1;INTDEQUE deque2(5,3);//初始化void initDeque(){int a[]={0,2,4,6,8,10,12,14};deque1.resize(8);copy(a,a+8,deque1.begin());}//打印void ShowDeque(INTDEQUE & dequeTemp){cout<<"元素数量"<< dequeTemp.size()<<endl;for(INTDEQUE::iterator dIter=dequeTemp.begin();dIter!=dequeTemp.end();dIter++){cout<<*dIter<<" ";} cout<<endl; }//构造函数 共7种 msdn 常用前5种void constructor_test(){INTDEQUE deque3(4);INTDEQUE deque4(deque2);INTDEQUE deque5(deque1.begin(),deque1.end());INTDEQUE deque6(++deque1.begin(),deque1.end(),deque1.get_allocator());INTDEQUE deque7(3,1,deque1.get_allocator());ShowDeque(deque1);ShowDeque(deque2);ShowDeque(deque3);ShowDeque(deque4);ShowDeque(deque5);ShowDeque(deque6);ShowDeque(deque7); }//重新分配数据void assign_test(){deque1.assign(7,4);ShowDeque(deque1);deque1.assign(deque2.begin(),deque2.end());ShowDeque(deque1);}//指定位置 等同于操作符[] 具体和vector相似 2个重载函数void at_test(){ShowDeque(deque1);int &i=deque1.at(0);const int &j=deque1.at(1);cout<<"第一个"<< i<<endl;cout<< "第二个"<<j<<endl;}//最后一个元素void back_test(){ ShowDeque(deque1);int &i=deque1.back();const int &j=deque1.back();cout<<"最后一个"<< i<<" "<<j<<endl;}//第一个元素void front_test(){ ShowDeque(deque1);int &i=deque1.front();const int &j=deque1.front();cout<<"第一个"<< i<<" "<<j<<endl;}//返回第一个元素位置void begin_test(){ShowDeque(deque1);INTDEQUE::iterator dIter=deque1.begin();INTDEQUE::const_iterator constIter =deque1.begin();cout<<"第一个"<< *dIter<<" "<<*constIter<<endl;}//返回最后一个元素位置void end_test(){ShowDeque(deque1);INTDEQUE::iterator dIter=deque1.end();INTDEQUE::const_iterator constIter =deque1.end();cout<<"最后一个"<< *--dIter<<" "<<*--constIter<<endl;}//逆向返回第一个元素位置void rbegin_test(){ShowDeque(deque1);INTDEQUE::reverse_iterator dIter=deque1.rbegin();INTDEQUE::const_reverse_iterator constIter =deque1.rbegin();cout<<"逆向第一个"<< *dIter<<" "<<*constIter<<endl;}//返回最后一个元素位置void rend_test(){ShowDeque(deque1);INTDEQUE::reverse_iterator dIter=deque1.rend();INTDEQUE::const_reverse_iterator constIter =deque1.rend();cout<<"逆向最后一个"<< *--dIter<<" "<<*--constIter<<endl;}//清空void clear_test(){ShowDeque(deque1);deque1.clear();ShowDeque(deque1);}//是否空void empty_test(){if(!deque1.empty()){ShowDeque(deque1);cout<<"this is not empty"<<endl;deque1.clear();}if(deque1.empty()){ ShowDeque(deque1);cout<<"this is empty"<<endl;}}//插入数据 3重载void insert_test(){ ShowDeque(deque1); deque1.insert(deque1.begin(),9); ShowDeque(deque1); deque1.insert(deque1.begin(),3,1); ShowDeque(deque1); deque1.insert(deque1.begin(),deque2.begin(),deque2.end()); ShowDeque(deque1);}//删除 2重载void erase_test(){ ShowDeque(deque1);deque1.erase(deque1.begin());ShowDeque(deque1);deque1.erase(++deque1.begin(),--deque1.end());ShowDeque(deque1);}//最大数void max_size_test(){int i=deque1.max_size();cout<<"最大:"<< i<<endl;}//删除最后void pop_back_test(){ ShowDeque(deque1); deque1.pop_back(); ShowDeque(deque1);}//删除前面void pop_front_test(){ ShowDeque(deque1); deque1.pop_front(); ShowDeque(deque1); }// 在尾部加入一个数据。 void push_back_test() { ShowDeque(deque1); deque1.push_back(11); ShowDeque(deque1); } //在头部加入数据 void push_front_test() { ShowDeque(deque1); deque1.push_front(11); ShowDeque(deque1); } //元素数 void size_test() { ShowDeque(deque1); int i=deque1.size(); cout<<"元素数目"<< i<<endl; } //重新分配 void resize_size() { ShowDeque(deque1); deque1.resize(20);//不足的元素用0补满 ShowDeque(deque1); }//交换 2重载 void swap_test() { ShowDeque(deque1); ShowDeque(deque2); deque1.swap(deque2); cout<<"交换"<<endl; ShowDeque(deque1); ShowDeque(deque2);swap(deque1,deque2);cout<<"交换"<<endl; ShowDeque(deque1); ShowDeque(deque2); }void main(){initDeque();//constructor_test();//assign_test();//at_test();//back_test();//front_test();//begin_test();//end_test();//rbegin_test();//rend_test();//clear_test();//empty_test();//insert_test(); //erase_test();//max_size_test(); //pop_back_test();//pop_front_test();//push_back_test();//push_front_test();//size_test(); //resize_size();swap_test();getchar();}
- STL之Deque
- STL容器之deque
- STL容器之 deque
- STL容器之deque
- STL容器之deque
- STL容器之deque
- stl库之deque
- STL之deque
- STL之deque
- STL 之 deque
- STL学习之deque
- STL之deque
- STL之 deque
- STL之八 deque
- STL容器之Deque
- STL容器之deque
- STL学习之deque
- stl之deque
- 转载一篇好文:NuGet 使用教程
- .net注册js事件
- php 全角转半角
- Android笔记(2)——网络状态的判断与处理
- Windwos XP 下 Android 环境搭建 详解 整理中
- STL之Deque
- learning jQuery 学习笔记十五(+jQuery 1.4.1 API)-- AJAX----load(url, [data], [callback])
- PDF插入图片
- Android dex文件格式,自认为最牛B的解析
- 选用ibatis和hibernate的区别
- 抽象类与接口的区别(转)
- 2010全面兼容IE6/IE7/IE8/FF的CSS HACK写法
- 九步教你安装android源代码
- ubuntu 9.04 + eclipse 3.4.2 + android