vector的初始化及常用操作

2021-08-22 02:43:43 字數 2932 閱讀 8459

1.vector

的初始化:可以有五種方式

,舉例說明如下: (

1)vectora(10); //

定義了10

個整型元素的向量(尖括號中為元素型別名,它可以是任何合法的資料型別),但沒有給出初值,其值是不確定的。(2

)vectora(10,1); //

定義了10

個整型元素的向量

,且給出每個元素的初值為1(

3)vectora(b); //用b

向量來建立

a向量,整體複製性賦值(4

)vectora(b.begin(),b.begin+3); //

定義了a值為b

中第0個到第2

個(共3

個)元素(5

)intb[7]=;vectora(b,b+7); //

從陣列中獲得初值

2.vector

物件的幾個重要操作,舉例說明如下: (

1)a.assign(b.begin(), b.begin()+3);//b

為向量,將b的

0~2個元素構成的向量賦給a(

2)a.assign(4,2);//是a

只含4個元素,且每個元素為2(

3)a.back();//返回a

的最後乙個元素(4

)a.front();//返回a

的第乙個元素(5

)a[i]; //返回a

的第i個元素,當且僅當

a[i]

存在2013-12-07(6

)a.clear();//清空a

中的元素(7

)a.empty();//判斷a

是否為空,空則返回

ture,

不空則返回

false(8

)a.pop_back();//刪除a

向量的最後乙個元素(9

)a.erase(a.begin()+1,a.begin()+3);//刪除a

中第1個(從第

0個算起)到第

2個元素,也就是說刪除的元素從

a.begin()+1

算起(包括它)一直到

a.begin()+3

(不包括它)(10

)a.push_back(5);//在a

的最後乙個向量後插入乙個元素,其值為5(

11)a.insert(a.begin()+1,5);//在a

的第1個元素(從第

0個算起)的位置插入數值5,如

a為1,2,3,4

,插入元素後為

1,5,2,3,4(12

)a.insert(a.begin()+1,3,5);//在a

的第1個元素(從第

0個算起)的位置插入

3個數,其值都為5

(13)a.insert(a.begin()+1,b+3,b+6);//b

為陣列,在a的第

1個元素(從第

0個算起)的位置插入b的第

3個元素到第

5個元素(不包括

b+6),如b為

1,2,3,4,5,9,8

,插入元素後為

1,4,5,9,2,3,4,5,9,8

(14)

a.size();//返回a

中元素的個數;

(15)

a.capacity();//返回a

在記憶體中總共可以容納的元素個數

(16)

a.rezize(10);//將a

的現有元素個數調至

10個,多則刪,少則補,其值隨機

(17)

a.rezize(10,2);//將a

的現有元素個數調至

10個,多則刪,少則補,其值為

2(18

)a.reserve(100);//將a

的容量(

capacity

)擴充至

100,也就是說現在測試

a.capacity();

的時候返回值是

100.

這種操作只有在需要給

a新增大量資料的時候才

顯得有意義,因為這將避免記憶體多次容量擴充操作(當

a的容量不足時電腦會自動擴容,當然這必然降低效能)

(19)

a.swap(b);//b

為向量,將

a中的元素和

b中的元素進行整體**換

(20)

a==b; //b

為向量,向量的比較操作還有

!=,>=,<=,>,<

3.vector

物件的幾個常用

,使用時需要包含標頭檔案:

#include(1)

sort(a.begin(),a.end()); //對a

中的從a.begin()

(包括它)到

a.end()

(不包括它)的元素進行從小到大排列(2)

reverse(a.begin(),a.end()); //對a

中的從a.begin()

(包括它)到

a.end()

(不包括它)的元素倒置,但不排列,如

a中元素為

1,3,2,4,

倒置後為

4,2,3,1(3)

copy(a.begin(),a.end(),b.begin()+1); //把a

中的從a.begin()

(包括它)到

a.end()

(不包括它)的元素複製到

b中,從

b.begin()+1

的位置(包括它)開始複製,覆蓋掉原有元素(4)

find(a.begin(),a.end(),10); //在a

中的從a.begin()

(包括它)到

a.end()

(不包括它)的元素中查詢

10,若存在返回其在向量中的位置

Vector初始化及用法

vector類為內建陣列提供了一種替代表示,與string類一樣 vector 類是隨標準 c 引入的標準庫的一部分 為了使用vector 我們必須包含相關的標頭檔案 include 使用vector有兩種不同的形式,即所謂的陣列習慣和 stl習慣。一 陣列習慣用法 1.定義乙個已知長度的 vect...

MARIADB安裝 初始化及常用操作

1.linux下安裝與初始化 安裝 yum install mariadb server 設定編碼 vim etc my.cnf mysqld character set server utf8 啟動 systemctl start mariadb 自啟動 systemctl enable mari...

vector陣列的初始化

vector容器是包含 type 型別元素的序列容器。vector容器的大小 長度 可以自動增長,從而可以包含任意數量的元素,只要元素個數超出 vector 當前容量,就會自動分配更多的空間。但是只能在容器尾部高效地刪除或新增元素。vectorname type 指數組型別,例如int,float,...