vector基本知識

2021-10-01 23:47:50 字數 3744 閱讀 2119

一,向量

vector:向量(動態陣列)記憶體分配是連續的空間,空間不夠用會申請乙個更大的連續的空間,同時迭代器失效。

二,標頭檔案

#include

//標頭檔案

#include

using namespace std;

三,定義向量的物件

以int型別為例

void

stldefine()

定義的物件還可以是結構體

void

stldefine()

; vector vec;

//定義向量的物件

}

定義的物件還可以是double型,指標等

vector< char > vec;相當於string

四,建構函式
void

stlconstructor()

//建構函式

五,容量

(1)capacity()

(2)reserve();

vector<

int> vec;

vec.

reserve(10

);//容量由0變為10

(3)重新分配容量後,迭代器失效

六,大小

(1)size():有效元素的個數

vector<

int>

vec(4)

;cout << vec.

size()

<< endl;

//輸出為4

(2)resize() :重新設定元素個數,容量不變

vector<

int>

vec(4)

;vec.

resize(3

);cout << vec.

size()

<< endl;

cout << vec.

capacity()

<< endl;

//輸出3 \n 4

(3)empty():判斷物件是否有元素

如果是空返回 1,如果有元素返回 0 。

vector<

int> vec;

cout << vec.

empty()

;//輸出 1

vector<

int>

vec(4)

;cout << vec.

empty()

;//輸出 0

七,操作

(1)查

void

stldo()

for(

int i =

0; i <

10; i++

)}

vector<

int>

::iterator ite = vec.

begin()

;for

(ite; ite != vec.

end(

); ite ++

)

cout << vec.at(

);cout << vec.

back()

;cout << vec.

begin()

;

#include

//需要加這個標頭檔案

void

fun(

int i)

for_each

(vec.begin,vec.

end(

),fun)

;

(2)增

void

fun(

int i)

void

stladd()

vec.

insert

(vec.

begin()

+2,12

);//在指定迭代器的位置加入乙個資料

vec.

insert

(vec.

begin()

+2,5

,12);

//在某個迭代器後加sum個值為value的元素

vector<

int>

vec1(5

,1);

vec.

insert

(vec.

begin()

+3,vec1.

begin()

,vec1.

begin()

+3);

//在某個迭代器後加入另乙個向量的中間一段

for_each

(vec.begin,vec.

end(

),fun)

;}

(3)刪

vec.

erase

(vec.

begin()

+3);

//刪除乙個

vec.

erase

(vec.

begin()

+3,vec.

end())

;//刪除一段

(4)改

(5)交換兩個向量的內容

vec.

swap

(vec1)

;

八,兩個演算法

(1)遍歷:for_each

(2)排序:sort

vector<

int> vec;

vec.

push_back(2

);vec.

push_back(1

);vec.

push_back(4

);vec.

push_back(5

);vec.

push_back(3

);sort

(vec.

begin()

+2,vec.

end())

;//可以不從頭到尾排

for_each

(vec.

begin()

,vec.

end(

),fun)

;

sort

(vec.

begin()

,vec.

end(

),greater<

int>()

);

注意:在使用greater函式時需要加標頭檔案

#include < functional >

只有多多應用才能熟練掌握,加油

Oracle 基本知識

乙個表空間只能屬於乙個資料庫 每個資料庫最少有乙個控制檔案 建議3個,分別放在不同的磁碟上 每個資料庫最少有乙個表空間 system表空間 建立system表空間的目的是盡量將目的相同的表存放在一起,以提高使用效率,只應存放資料字典 每個資料庫最少有兩個聯機日誌組,每組最少乙個聯機日誌檔案 乙個資料...

Oracle 基本知識

乙個表空間只能屬於乙個資料庫 每個資料庫最少有乙個控制檔案 建議3個,分別放在不同的磁碟上 每個資料庫最少有乙個表空間 system表空間 建立system表空間的目的是盡量將目的相同的表存放在一起,以提高使用效率 每個資料庫最少有兩個聯機日誌檔案 乙個資料檔案只能屬於乙個表空間 乙個資料檔案一旦被...

Oracle 基本知識

oracle 文章摘要 oracle 基本知識。正文 oracle 基本知識 乙個表空間只能屬於乙個資料庫 每個資料庫最少有乙個控制檔案 建議3個,分別放在不同的磁碟上 每個資料庫最少有乙個表空間 system表空間 建立system表空間的目的是盡量將目的相同的表存放在一起,以提高使用效率 每個資...