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