其迭代器函式原型:
iterator begin();
const_iterator begin() const;
iterator end();
const_iterator end() const;
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
reverse_iterator rend();
const_reverse_iterator rend() const;
其訪問操作:
reference operator[ ](size_type n);
const_reference operator[ ](size_type n) const;
reference at(size_type n) ;//在各種標準序列裡,只有vector和deque支援下標操作。list沒有這個操作,因為list是鍊錶,不是隨機訪問,更適合增刪改
const_reverence at(size_type n) conset;
其建構函式原型:
explicit vector(const a&=a());
explicit vector(size_type n,const t& val=t(),const a&=a());
template
vector(in first,in last,const a&=a());
vector(const vector& x);
~vector();
vector& operator=(const vector& x);
template
void assign(in first,in last);
void assign(size_type n,const t& val);
其堆疊操作:
void push_back(const t& x);
void pop_back();
其表操作:
iterator insert(iterator pos,const t& x);//返回的迭代器指向新插入的元素
void insert(iterator pos,size_type n,const t& x);
template
void insert(iterator pos,in first,in last);
iterator erase(iterator pos);//返回的迭代器指向被刪除的最後元素之後的那個元素
iterator erase(iterator first,iterator last);//返回的迭代器指向被刪除的最後元素之後的那個元素
void clear();//等價與c.erase(c.begin(),c.end());
大小容量控制操作:
size_type size() const;
bool empty() const
size_type max_size() const;
void resize(size_type sz,t val=t());
size_type capacity() const;
void reserve(size_type n);
reserve()並不改變vector的大小,並沒有要求它對任何新元素做初始化,在這兩個方面都與resize()不一樣
其他成員函式:
void swap(vector&);
allocator_type get_allocator() const;
協助函式
template
bool std::operator==(const vector&x,const vector& y);
template
bool std::operator
標準庫還定義了!=,<=,>,>=操作,這裡就不一一羅列了。
標準庫還提供了特化模板vector
c.begin()返回的是vector::const_iterator
vector操作的一些**:
v.erase(first,last.base());//iterator和reverse_iterator是不同的型別,reverse_iterator可以通過base()提取iterator
忠告:1利用標準庫功能,以維持可移植性
2記住標準庫功能都定義在std名字裡
3用base()可以從reverse_iterator提取iterator
4通過引用傳遞容器
5多用容器和push_back()或resize(),少用陣列和realloc()
'>
vector用法整理
包含標頭檔案 include 一 vector 的初始化 可以有五種方式,舉例說明如下 1 vectora 10 定義了10個整型元素的向量 尖括號中為元素型別名,它可以是任何合法的資料型別 但沒有給出初值,其值是不確定的。2 vectora 10,1 定義了10個整型元素的向量,且給出每個元素的初...
STL模板整理 vector
1 c 標準模板庫與c 標準庫的關係 c 標準模板庫其實屬於c 標準庫的一部分,c 標準模板庫主要是定義了標準模板的定義與宣告,而這些模板主要都是 類模板,我們可以呼叫這些模板來定義乙個具體的類 與之前的自己手動建立乙個函式模版或者是類模板不一樣,我們使用了 stl就不用自己來建立模板了,這些模板都...
vector操作小結
前面了解了一下vector,現在我們來看看vector的相關操作。int main vectorv5 vectorv6 3 只提供數量而略去初始值,int 0,string 空串 vector iterator it push back向vector物件中新增元素 for int i 0 i 10 ...