C 知識點總結

2021-10-03 08:29:50 字數 3450 閱讀 9833

(1) 不帶引數的建構函式初始化

//初始化乙個size為0的vector

vectorabc;

(2) 帶引數的建構函式初始化

//初始化size,但每個元素值為預設值

vector<

int>

abc(10)

;//初始化了10個預設值為0的元素

//初始化size,並且設定初始值

vector<

int>

cde(

10,1);

//初始化了10個值為1的元素

vector<

int> v1 =

;//c++11以上編譯器能通過

sort

(v1.

begin()

,v1.

end())

;

(3) 通過陣列位址初始化

int a[5]

=;//通過陣列a的位址初始化,注意位址是從0到5(左閉右開區間)

vector<

int>

b(a, a+5)

;

(4) 通過同型別的vector初始化

vector<

int>a(

5,1)

;//通過a初始化,但只能在初始化時使用

vector<

int>

b(a)

;vector<

int> c = b;

vector<

int>

v5(a.

begin()

,a.begin()

+1)

(5) 通過insert初始化

//insert初始化方式將同型別的迭代器對應的始末區間(左閉右開區間)內的值插入到vector中

vector<

int>a(

6,6)

;vecot<

int> b;

//將a[0]~a[2]插入到b中,b.size()由0變為3

b.insert

(b.begin()

, a.

begin()

, a.

begin()

+3);

int a[6]

=;vector<

int> b;

//將a的所有元素插入到b中

b.insert

(b.begin()

, a, a+6)

;//在b開始位置處插入6個6

b.insert

(b.begin()

,6,6

);

(1) 新增(刪除)元素

vector<

int> a;

vector<

int> b =;a.

push_back(1

);//末尾新增元素

//如果vector的容器已滿,在末尾新增元素時會alloc申請更大的記憶體,並拷貝之前的元素到新記憶體,再把元素新增到vector容器末尾。

a.pop_back()

;//刪除末尾元素

a.assign

(b.begin()

, b.

begin()

+3);

a.assign(4

,2)//賦值

a.insert

(a.begin()

+1,5

);a.insert

(a.begin()

+1,3

,5);

a.clear()

;//清空a中的元素

a.erase

(a.begin()

+1,a.begin()

+3);

(2) 屬性返回

a[i]

;//返回a的第i個元素

a.back()

;//返回a的最後乙個元素

a.front()

;//返回a的第乙個元素

a.size()

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

a.capacity()

;//返回a在記憶體中總共可以容納的元素個數

a.empty()

;//判斷a是否為空,空則返回ture,不空則返回false

(3) 擴充尺寸

a.

resize(10

);//將a的現有元素個數調至10個,多則刪少則補,其值隨機

a.resize(10

,2);

//將a的現有元素個數調至10個多則刪少則補,其值為2

a.reserve

(100);

//將a的容量(capacity)擴充至100,也就是說現在測試a.capacity();的時候返回值是100

a.swap

(b);

//b為向量,將a中的元素和b中的元素進行整體**換

(4) 迭代器新增

int a[6]

=;vector<

int> b;

vector<

int>

c(a,a+4)

;for

(vector<

int>

::iterator it=c.

begin()

;itend(

);it++)b.

push_back

(*it)

;

(5) 重要演算法

#include

sort

(a.begin()

,a.end()

);//對a中的從a.begin()(包括它)到a.end()(不包括它)的元素進行從小到大排列

reverse

(a.begin()

,a.end()

);//對a中的從a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素為1,3,2,4,倒置後為4,2,3,1

copy

(a.begin()

,a.end()

,b.begin()

+1);

//把a中的從a.begin()(包括它)到a.end()(不包括它)的元素複製到b中,從b.begin()+1的位置(包括它)開 始複製,覆蓋掉原有元素

vector<

int>

::iterator it =

find

(v.begin()

, v.

end(),

5);if

(it != v.

end())

else

c 知識點總結

1 c 中判斷物件為空的幾種方式 1 先了解幾個與空型別相關的關鍵字和物件 null 關鍵字表示不引用任何物件的空引用,它是所有引用型別變數的預設值,在2.0版本之前也就只有引用變數型別可以為null,如 string a null 但在c 2.0版本之後,net也引入了可以為null的值型別,但變...

C 知識點總結

程式 資料結構 演算法.c語言是面向過程的,面向過程就是分析出解決問題的步驟,然後用函式將其實現,使用時依次呼叫.程式 物件 訊息.c 是物件導向的,c 物件導向是將構成問題的事物分解成各個物件,每個物件完成在解決整個問題中的行為.主要特點是類,封裝,繼承,多型等。物件導向的語言具有更好的可擴充套件...

C 知識點總結

變數和常量 命名變數 在c 中,使用變數的基本原則是先定義後使用。其命名規範如下 1.必須以字母或下劃線開頭 2.只能由字母 數字 下劃線組成,不能 包含空格 標點符號 運算子及其他符號 3.不能與c 關鍵字同名,如class,new等 例如,正確命名 int i 整型變數 stringuser n...