標準模板庫中的向量 vector

2022-06-27 07:24:12 字數 3062 閱讀 8628

//c++資料結構與演算法(第4版) adam drozdek 著  徐丹  吳偉敏《清華大學出版社》

標頭檔案:#include

向量是最簡單的stl容器,其資料結構與陣列類似,佔據著乙個連續的記憶體塊。由於記憶體位置是連續的,所以向量中的元素可以隨機訪問,訪問向量中任何乙個元素的時間也是固定的。儲存空間的管理是自動的,當要將乙個元素插入到已滿的向量中時,會為向量分配乙個更大的記憶體塊,將向量中的元素複製進新的記憶體塊,然後釋放舊的記憶體塊。所以,向量是乙個靈活的陣列,是能夠動態改變自身大小的陣列。

vector()//建立空向量

vector(size_type n, const t& el = t())//用型別t的n個el副本建立乙個向量(如果沒有提供el,則使用預設的建構函式t())

vector(iterator first, iterator last)//用迭代器first和last指示範圍中的元素構造乙個向量

vector(const vector& v)//複製建構函式

void assign(iterator first,iterator last)//刪除向量中的所有元素,然後將迭代器first和last指示範圍中的元素插入該向量。

void assign(size_type n, const t& el = t())//刪除向量中的所有元素,然後將el的n個副本插入該向量中。

t& at(size_type n)//返回向量中位置為n的元素

const t& at(size_type n) const//返回向量中位置為n的元素

t& back()//返回向量的最後乙個元素

t& front()//返回向量的第乙個元素

const t& front() const//返回向量的第乙個元素

const t& back() const//返回向量的最後乙個元素

iterator begin()//返回乙個迭代器,該迭代器引用向量的第乙個元素

iterator end()//返回乙個迭代器,該迭代器位於向量的最後乙個元素之後

const_iterator begin() const//返回乙個迭代器,該迭代器引用向量的第乙個元素

const_iterator end() const//返回乙個迭代器,該迭代器位於向量的最後乙個元素之後

size_type capacity() const//返回可以儲存在向量中的元素數目

void clear()//清除向量中的所有元素

bool empty() const//如果向量不包括元素,則返回true,否則返回false

iterator erase(iterator i)//刪除由迭代器i引用的元素,返回乙個迭代器,引用被刪除元素之後的元素

iterator erase(iterator first, iterator last)//刪除迭代器first和last指示範圍中的元素,返回乙個迭代器,引用被刪除的最後乙個元素之後的元素

iterator insert(ierator i, const t& el = t())//在迭代器i引用的元素之前出入el,並返回引用新插入元素的迭代器

void insert(iterator i, size_type n, const t& el)//在迭代器i引用的元素之前插入el的n個副本

void insert(iterator i, iterator first, iterator last)//在迭代器i引用的元素之前插入迭代器first和迭代器last指示的範圍中的元素

size_type max_size() const//返回向量最大元素數

t& operator//下標運算子

const t& operator const//下標運算子

void pop_back()//刪除向量的最後乙個元素

void push_back(const t& el)//在向量的末尾插入el

reverse_iterator rbegin()//返回引用向量中最後乙個元素的迭代器

const_reverse_iterator rbegin() const//返回引用向量中最後乙個元素的迭代器

reverse_iterator rend()//返回引用向量中第乙個元素之前的迭代器

const_reverse_iterator rend() const//返回引用向量中第乙個元素之前的迭代器

void reserve(size_type n)//如果向量的容量小於n,該函式就為向量預留儲存n項的足夠空間

void resize(size_type n, const t& el = t())//使向量儲存n個元素,方法是:通過el再新增n-size()個位置,或者丟棄向量末尾溢位的size()-n個位置

size_type size() const//返回向量中的元素數量

void swap(vector& v)//與另乙個向量v交換內容

在 vector 容器中間新增(或刪除)元素將使所有指向插入(或刪除)點後面的元素的迭代器失效。

標準模板庫 (向量 vector)

編寫程式練習了vector 的主要函式。從中學習到了一些知識點 1.vector的內部其實還是陣列。2.at用於按照索引訪問任意位置的元素,front用於訪問頭元素,back用於訪問尾元素。3.arr.at i 和arr i 是等價的,在vector的內部過載了操作符。4.push back用於在尾...

C 標準模板庫 向量(vector)

1 可將向量 vector 想象成為乙個在程式執行時能改變長度的陣列。因為在c c 中定義了乙個陣列之後,這個陣列是固定長度的,不能隨意改變大小,向量和陣列用處相同,不同之處在於能自由改變大小。2 宣告變數v是基型別為int的向量 vectorv 3 vector代表乙個模板類,可以將t換成任意資料...

精通標準模板庫STL的向量Vector用法

2011 03 20 15 08 1804人閱讀收藏 舉報vector iterator string dst 1.標頭檔案 要使用vector必須在所在檔案中包含標頭檔案。include 2.宣告乙個vector變數 vector int vec int vector vec char vecto...