C STL感知 vector容器

2021-10-08 13:04:26 字數 3255 閱讀 1087

vector容器非常類似陣列,也稱單端陣列

vector容器的迭代器支援隨機訪問

與陣列不同:

陣列是在靜態空間分配,vector可以動態擴充套件
動態擴充套件原理:

重新分配空間,將原空間資料拷貝到新空間,再釋放原空間
建立vector容器
void

get_vector

(void

)show_vector

(v);

vector<

int>

v1(v)

;//拷貝構造

show_vector

(v1)

; vector<

int>

v2(v.

begin()

, v.

end())

;show_vector

(v2)

; vector<

int>v3(

100,

520)

;//將100個520拷貝給v3容器

show_vector

(v3)

;}

void

assign_vector

(void

) vector<

int> v1 = v;

//直接賦值,過載了加號運算子

show_vector

(v1)

; vector<

int> v2;

v2.assign

(v.begin()

, v.

end())

;//利用assign方法賦值

show_vector

(v2)

; vector<

int> v3;

v3.assign(10

,250);

show_vector

(v3)

;}

void

vector_size

(void)if

(v.empty()

)else

show_vector

(v);

v.resize(10

);if(v.

empty()

)else

show_vector

(v);

v.resize(50

,10);

show_vector

(v);

}

push_back

(ele)

;//尾部插入元素ele

pop_back()

;//刪除最後乙個元素

insert

(const_iterator pos, ele)

;//迭代器指向位置pos插入元素ele

insert

(const_iterator pos,

int count,ele)

;//迭代器指向位置pos插入count個元素ele

erase

(const_iterator pos)

;//刪除迭代器指向的元素

erase

(const_iterator start, const_iterator end)

;//刪除迭代器從start到end之間的元素

clear()

;//刪除容器中所有元素

void

insert_push_pop

(void

)show_vector

(v);

v.pop_back()

;//刪除最後乙個元素

show_vector

(v);

v.insert

(v.begin()

+1,100);

//在第二元素位置插入100

show_vector

(v);

v.insert

(v.end()

,3,520);

//在最後乙個元素位置插入3個520

show_vector

(v);

v.erase

(v.end()

-3, v.

end())

;//刪除末尾的3個元素,也就是3個520

show_vector

(v);

v.clear()

;// 清空容器

show_vector

(v);

}

直接類似陣列訪問:

vector[index]

;//index訪問的哪個元素

vector<

int> v;

//無參構造

for(

int i =

0; i <

20; i++

)cout << v[0]

<< endl;

//像陣列一樣通過下標訪問v[0

]=100;

cout << v[0]

<< endl;

使用at方法訪問:

vector.at(

int idx)

;//idx訪問的哪個元素

cout << v.at(

1)<< endl;

v.at(1

)=520;

cout << v.at(

1)<< endl;

獲取第乙個元素:

vector.

front()

;

獲取最後乙個元素:

vector.

back()

;

vector1.

swap

(vector2)

;//將vector1容器內容和vector2互換

void

vector_sort

(void

)

C STL感知 string容器

在c 中經常如下定義字串 string str 而string本質是c 中的乙個類。char 是乙個指標,string類內部封裝了char string類的建構函式 string 建立控的字串 sring const char s 使用s初始化字串 string const string str 拷...

C STL 考點 容器(vector)

default 1 explicit vector const allocator type alloc allocator type fill 2 explicit vector size type n vector size type n,const value type val,const a...

C STL中的容器 Vector

c stl中的verctor好比是c語言中的陣列,但是vector又具有陣列沒有的一些高階功能。與陣列相比,vector就是乙個可以不用再初始化就必須制定大小的邊長陣列,當然了,它還有許多高階功能。要想用vector首先得包含標頭檔案vector。如果vector的元素型別是int,預設初始化為0 ...