順序容器主要包括vector、list、deque,分別在頭文件<vector>、<list>和<deque>中定義。

1.容器創建
C<T>  c;               //創建空容器,適用于所有容器
C<T>  c(c2);         //創建c2的副本,c和c2必須是同類型容器和元素,適用所有容器
C<T>  c(b, e);       //容器類型和元素類型可兼容即可,但是根據實驗,貌似不行
C<T>  c(n, t);        //n個t值元素,t必須是T類型或可轉為T類型,適用于順序容器
C<T>  c(n);           //n個使用初始化值的元素,適用于順序容器,一般是0

2.迭代器操作
*iter
iter->mem
++iter
iter++
--iter
iter--
iter1 == iter2
iter1 != iter2
--------------------------
iter + n                   //只有vector和deque支持算術運算和關系運算,list不支持
iter – n
iter1 += iter2
iter1 -= iter2
iter1 – iter2
iter1 > iter2
iter1 < iter2
iter1 <= iter2
iter1 >= iter2

3.內置類型
C<T>::size_type
C<T>::iterator
C<T>::const_iterator                //注意與const C<T>::iterator不同
C<T>::reverse_iterator
C<T>::const_reverse_iterator
C<T>::value_type
C<T>::reference                     //左值類型,即value_type&
C<T>::const_reference           //const value_type&

4.基本操作
void  c.push_back(t);
void  c.push_front(t);        //只適用list、deque

void  c.insert(p, n ,t);
void  c.insert(p, b, e);
C<T>::iterator  c.insert(p, t);

C<T>::size_type  c.size();
C<T>::size_type  c.max_size();   //最多可容納的元素,與類型有關,總存儲空間固定
bool  c.empyt();
void  c.resize(n);
void  c.resize(n, t);                   //重調c的大小,新添加的元素值使用t值

c[n]                                        //只適用于vector、deque容器
C<T>::value_type  c.at(n);      //只適用于vector、deque容器,防止越界

C<T>::iterator  c.erase(p);
C<T>::iterator  e.erase(b, e);
void  c.clear();
void  c.pop_back();
void  c.pop_front();               //只適用于list、deque容器

c1 = c2                          //重設,要求c1和c2類型相同,元素類型相同
void  c1.assign(b, e);      //重設,b、e不能是c1中的迭代器,類型兼容即可
void  c1.assign(n, t);       //重設
void  c1.swap(c2);        //c1和c2類型必須相同,且迭代器不失效


容器適配器包括queue、priority_queue、stack。
stack默認基于deque容器實現,也可以建立在vector、list和deque上;
queue默認基于deque容器實現,也可以建立在list和deque上;
priority_queue默認基于vector上,也可以建立在vector和deque上。
stack<string, vector<string> >  a;
stack<string, vector<string> >  a(c);

1.內置類型
C<T>::size_type
C<T>::value_type
C<T>::container_type

2.stack的操作
bool  s.empty();
C<T>::size_type  s.size();
void s.pop();                   //刪除不返回
C<T>::value_type  s.top();      //返回但不刪除
void s.push(value);

3.queue和priority_queue的操作
void  q.empty();
C<T>::size_type  q.size();
void  q.pop();                         //刪除隊首,不返回
C<T>::value_type  q.front();   //返回隊首,不刪除,只適用于queue
C<T>::value_type  q.back();   //返回隊尾,不刪除,只適用于queue
C<T>::value_type  q.top();    //返回最高優先級的元素,不刪除,只適用于priority_type
void  q.push(value);               //對queue是在隊尾壓入,對priority_queue是適當位置插入