順序容器類型:
vector 支持快速隨機訪問
list 支持快速插入/刪除
deque 雙端隊列
容器元素初始化
C<T> c;
C<T> c(c2);
C<T> c(begin,end);
C<T> c(n,t);//順序容器
C<T> c(n); //順序容器,採用這種類型的初始化,元素類型必須是內置或複合類型,或者是提供了默認構造函數的類型。
容器內元素的類型約束
元素類型必須支持賦值運算;
元素類型的對象必須可以複製。
引用類型、IO標準庫類型、auto_ptr類型不支持複製或賦值,因此不能創建存放這些類型對象的容器。
容器定義的類型別名
類型別名 | 含義 |
---|---|
size_type | 無符號整形,足以存儲此容器類型的最大可能容器長度 |
iterator | 此容器類型的迭代器類型 |
const_iterator | 元素的只讀迭代器類型 |
reverse_iterator | 元素的逆序迭代器類型 |
const_reverse_iterator | 元素的只讀逆序迭代器類型 |
difference_type | 足夠存儲倆個迭代器差值的有符號整型 |
value_type | 元素類型 |
reference | value_type&的同義詞,元素的左值類型 |
const_referrence | const value_type&,元素的常量左值類型 |
begin和end
c.begin(),
c.end(),
c.rbegin(),它指向容器c的最後一個元素
c.rend(),他指向容器c的第一個元素前面的位置
不要存儲end()操作返回的迭代器。添加或刪除deque或vector容器內的元素都會導致存儲的迭代器失效。
容器大小操作
c.size()
c.max_size()
c.empty()
c.resize(n)
c.resize(n,t)
訪問容器元素
c.back()
c.front()
c[n]//只適用於vector和deque
c.at(n)//同上
刪除容器元素
c.erase(p)
c.erase(b,e)
c.clear()
c.pop_back()
c.pop_front()//只適用list和deque
容器賦值與swap
c1=c2
c1.swap(c2)
c.assign(b,e)
c.assign(n,t)
vector容器自增長
c.capacity()//容量
c.reserve()//告之容器應該預留多少存儲空間