deque(双端队列)是一种具有队列和栈性质的数据结构,双端队列是限定插入和删除操作在表的两端进行的线性表。应用头文件#include<deque>
1. deque的构造函数
deque<int> myDeq1;
deque<int> myDeq2(4, 3); // 第一一个含有四个元素都为3的deque
int array[12] = {1, 2,..., 12};
deque<int> myDeq3(arrary, arrary+6); // 迭代器赋值
2. deque的插入和赋值
1) iterator insert( iterator_Where, const Type&_Val);
2) void insert( iterator_Where, size_type_Count, const Type& _Val);
3) void insert( iterator_Where, InputIterator_First, InputIterator_Last );
deque<int> myDeq;
myDeq.insert(myDeq.begin()+3, 3);
myDeq.insert(myDeq.begin()+1, 3, 31); // 在myDeq的第二个位置连续加入三个数据31
deque<int> myDeq1;
myDeq.insert(myDeq.begin(), myDeq1.begin(), myDeq1.end());
4) void push_back( const Type&_Val);
5) void push_front( const Type&_Val);
myDeq.push_back(1);
myDeq.push_front(2);
6) void assign( InputIterator_First, InputIterator_Last );
7) void assign( size_type_Count, const Type&_Val);
myDeq.assign(myDeq1.begin(), myDeq1.end()); // 删除myDeq中的所有的元素,添加myDeq1到myDeq中
myDeq.assign(10, 3); // 删除myDeq中的所有元素,并且添加10个3到myDeq中
3. deque 的删除
1) iterator erase(iterator_Where);
2) iterator erase(iterator_First, iterator,_Last)
deque<int> myDeq;
myDeq.erase(myDeq.begin()); //删除第一个元素
myDeq.erase(myDeq.begin(), myDeq.end());
3) void pop_back( ); // 删除最后一个元素
4) void pop_front(); // 删除最前一个元素
myDeq.pop_back();
myDeq.pop_front();
4. deque的取值
1) const_iterator end( ) const;
2) iterator end( );
deque<int> myDeq;
deque<int>::iterator iter;
iter = myDeq.end(); // 得到myDeq的结尾,是一个空
3) reference front( );
4) const_reference front( ) const;
int& value = myDeq.front(); // 取得第一个元素的值
int value = myDeq[3]; // 获取第四个元素的值
5) reference at( size_type_Pos);
6) const_reference at( size_type_Pos) const;
const int& value = myDeq.at(3); // 获取第四个元素的值
5. deque的其他成员方法
begin() Returns an iterator addressing the first element in the deque.
clear() Erases all the elements of a deque.
empty() Tests if a deque is empty.
end() Tests if a deque is empty.
deque() Constructs a deque of a specific size or with elements of a specific value
or with a specific allocator or as a copy of all or part of some other deque.
get_allocator() Returns a copy of the allocator object used to construct the deque.
max_size() Returns the maximum length of the deque.
rbegin() Returns an iterator to the first element in a reversed deque.
rend() Returns an iterator that points just beyond the last element in a reversed deque.
resize() Specifies a new size for a deque.
size() Returns the number of elements in the deque.
swap() Exchanges the elements of two deque.