C 中vertor的用法

2021-05-22 22:10:16 字數 1961 閱讀 1939

c++ 內建的陣列支援容器的機制,但是它不支援容器抽象的語義。要解決此問題我們自己實現這樣的類。在標準c++中,用容器向量(vector)實現。容器向量 也是乙個類模板。

標準庫vector型別使用需要的標頭檔案:#include 。vector 是乙個類模板。不是一種資料型別,vector是一種資料型別。vector的儲存空間是連續的,list 不是連續儲存的 。

一、 定義和初始化

vector< typename > v1;       //預設v1為空,故下面的賦值是錯誤的v1[0]=5;

vectorv2(v1); 或v2=v1;或vectorv2(v1.begin(), v1.end());//v2是v1的乙個副本,若v1.size()>v2.size()則賦值後v2.size()被擴充為 v1.size()。

vector< typename > v3(n,i);//v3包含n個值為i的typename型別元素

vector< typename > v4(n); //v4含有n個值為0的元素

int a[4]=; vectorv5(a,a+5);//v5的size為5,v5被初始化為a的5個值。後乙個指標要指向將被拷貝的末元素的下一位置。

vectorv6(v5);//v6是v5的拷貝

vector< 型別 > 識別符號(最大容量,初始所有值);

二、 值初始化

1>     如果沒有指定元素初始化式,標準庫自行提供乙個初始化值進行值初始化。

2>     如果儲存的式含有建構函式的類型別的元素,標準庫使用該型別的建構函式初始化。

3>     如果儲存的式沒有建構函式的類型別的元素,標準庫產生乙個帶初始值的物件,使用這個物件進行值初始化。

三、vector物件最重要的幾種操作

1. v.push_back(t)     在容器的最後新增乙個值為t的資料,容器的size變大。

另外list有push_front()函式,在前端插入,後面的元素下標依次增大。

2. v.size()         返回容器中資料的個數,size返回相應vector類定義的size_type的值。v.resize(2*v.size) 或                   

v.resize(2*v.size, 99) 將v的容量翻倍(並把新元素的值初始化為99)

3. v.empty()      判斷vector是否為空

4. v[n]            返回v中位置為n的元素

5. v.insert (pointer,number, content)    向v中pointer指向的位置插入number個content的內容。

還有v. insert(pointer, content),v.insert(pointer,a[2],a[4])將a[2]到a[4]三個元素插入。

6. v.pop_back()     刪除容器的末元素,並不返回該元素。

7.v.erase(pointer1,pointer2) 刪除pointer1到pointer2中間(包括pointer1所指)的元素。

vector中刪除乙個元素後,此位置以後的元素都需要往前移動乙個位置,雖然當前迭代器位置沒有自動加1,

但是由於後續元素的順次前移,也就相當於迭代器的自動指向下乙個位置一樣。

8. v1==v2          判斷v1與v2是否相等。

9. !=、<、<=、>、>=      保持這些操作符慣有含義。

10. vector::iterator p=v1.begin( ); p初始值指向v1的第乙個元素。*p取所指向元素的值。

對於const vector只能用vector::const_iterator型別的指標訪問。

11.   p=v1.end( ); p指向v1的最後乙個元素的下一位置。

12.v.clear()       刪除容器中的所有元素。12.v.clear()      刪除容器中的所有元素。

c 中 的用法

c 中的 至少有以下幾種作用 1.忽略轉義字元 例如 string filename d 文字檔案 text.txt 使用 後 string filename d 文字檔案 text.txt 2.讓字串跨行 例如 string strsql select from humanresources.em...

c 中 的用法

從這個帖子開始記錄一下我學習和工作當中遇到的問題,以及解決方法等等。最經公司需要對於乙個c 做的瀏覽器外掛程式做維護,使得以前沒接觸過c 的我遇到了一大堆問題,在這記錄下c 中 的用法 是運算子中等級最高的,它分為三種 1 global scope 全域性作用域符 用法 name 2 class s...

C 中 的用法

一 字串中的用法 1。地球人都知道 c 中 字串常量可以以 開頭聲名,這樣的優點是轉義序列 不 被處理,按 原樣 輸出,即我們不需要對轉義字元加上 反斜扛 就可以輕鬆coding。如,c code?1 stringfilepath c docs source a.txt rather than c ...