C 中Vector相關知識小結

2021-10-03 09:28:15 字數 2080 閱讀 9126

疫情所迫,希望用這種方法督促自己堅持學習。同時記錄在找工作過程中的艱辛不易。部落格內容持續增減修改,都為摘錄和個人理解。歡迎各位批評指正其中錯誤,相互勉勵,共同進步。

標準庫型別vector表示某一類物件的集。合因此也被叫做容器(container)。

//標頭檔案定義方法

#include

using std::vector;

需要注意圓括號與花括號的區別

//注意以下幾種定義方法的區別

vector<

int> v1;

//空間大小未知

vector<

int>v2(

10,42)

;//10個42

vector<

int> v3

;//花括號,兩個元素10和42

vector<

int>v4(

10);//空間大小為10

vector<

int> v5

;//包含乙個元素為10

vectorv6(

10);//10個字串型別

vectorv7(

10,"hi!");

//10個字串型別都為「hi!」

//也可以定義二維列表

vectorint>> v8;

vector> v9;

以下定義幾種vector常用的基本操作

vector<

int> v1;

int a;

v1.push_back

(a);

// 在v1末尾新增元素a

v1.empty()

;// 如果為空則返回真,否則返回假

v1.size()

;// 返回v1中元素的個數

v1 == v2;

// 比較兩個vector物件,類似還有<,<=,>,>=

需要注意的一點,容易出錯!!!(只能對確知已存在的元素執行下標操作)

vector<

int> v;v[0

]=3;

//會報錯,因為v沒有明確定義空間大小

//修改為以下情況就不會報錯

vector<

int>v(

10);//分配了確定數量的記憶體空間大小v[0

]=3;

因此用push_back為vector物件新增新的元素。其次在定義vector的時候,盡量不要指定其大小,而用動態的儲存空間,防止在執行增刪改查的時候緩衝區溢位。

示例**段一:往容器中新增100個型別為int的元素

vector<

int> v;

for(

int i=

0;i<

100;

++i)

v.push_back

(i);

示例**段二:往容器中輸入新增不定量的string型別

vector v;

string word;

while

(cin>>word)

v.push_back

(word)

;

示例**段三:不開闢新的記憶體空間改變vector中的值

vector<

int> v =

;for

(auto

&temp : v)

//將temp定義成引用型別,實現賦值功能

temp *

= temp;

//將v中的元素平方

for(

auto temp : v)

//注意此處的temp和上面的定義區別

cout << temp << endl;

//輸出為 0,1,4,9,16,25,36,49,64,81

vector相關操作小結

其實我原本只想對vector小結一下的 好吧,重點還是它,其他兩個由於性質相似所以大概說一下vector,array,valarray是c 提供的三個陣列模板,各自有著不同的優勢,三者均位於 命名空間std中,使用時均需要包括與之同名的標頭檔案 常用物件建立語法 vector vt n elem v...

C語言 指標相關知識小結

1.int p null 和 p null的區別 int p null指的是將乙個指標初始化為null,具體過程為 int p p null。2.a與a的區別 inta 5 int p a int q a 這樣的 對嗎?解釋 a得到陣列的位址。a表示陣列首元素的首位址。a的a的值一樣,兩個指向的位置...

C 多維陣列相關知識小結

疫情所迫,希望用這種方法督促自己堅持學習。同時記錄在找工作過程中的艱辛不易。部落格內容持續增減修改,都為摘錄和個人理解。歡迎各位批評指正其中錯誤,相互勉勵,共同進步。對於乙個3行4列的陣列可以理解為由3個大小為4的陣列所構成,多維陣列既陣列的陣列。多維陣列的定義如下 int a 3 4 定義大小為3...