c c vector物件常用內建函式使用

2021-10-24 23:38:51 字數 3732 閱讀 4184

vector是向量型別,可以容納許多態別的資料,因此也被稱為容器(可以理解為動態陣列,是封裝好了的類)進行vector操作前應新增標頭檔案#include ;
五種方式

1、//定義具有10個整型元素的向量(尖括號為元素型別名,它可以是任何合法的資料型別),不具有初值,其值不確定

vector<

int>a(

10);2、//定義具有10個整型元素的向量,且給出的每個元素初值為1

vector<

int>a(

10,1)

;3、//用向量b給向量a賦值,a的值完全等價於b的值

vector<

int>

a(b)

;4、//將向量b中從0-2(共三個)的元素賦值給a,a的型別為int型

vector<

int>

a(b.

begin()

,b.begin+3)

;5、 //從陣列中獲得初值

int b[7]

=;vector<

int>

a(b,b+

7);

#include

vector<

int> a,b;

//b為向量,將b的0-2個元素賦值給向量a

a.assign

(b.begin()

,b.begin()

+3);

//a含有4個值為2的元素

a.assign(4

,2);

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

a.back()

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

a.front()

;//返回a的第i元素,當且僅當a存在

a[i]

;//清空a中的元素

a.clear()

;//判斷a是否為空,空則返回true,非空則返回false

a.empty()

;//刪除a向量的最後乙個元素

a.pop_back()

;//刪除a中第乙個(從第0個算起)到第二個元素,也就是說刪除的元素從a.begin()+1算起(包括它)一直到a.begin()+3(不包括它)結束

a.erase

(a.begin()

+1,a.begin()

+3);

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

a.push_back(5

);//在a的第乙個元素(從第0個算起)位置插入數值5,

a.insert

(a.begin()

+1,5

);//在a的第乙個元素(從第0個算起)位置插入3個數,其值都為5

a.insert

(a.begin()

+1,3

,5);

//b為陣列,在a的第乙個元素(從第0個元素算起)的位置插入b的第三個元素到第5個元素(不包括b+6)

a.insert

(a.begin()

+1,b+3

,b+6);

//返回a中元素的個數

a.size()

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

a.capacity()

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

a.resize(10

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

a.resize(10

,2);

//將a的容量擴充至100,

a.reserve

(100);

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

a.swap

(b);

//b為向量,向量的比較操作還有 != >= > <= <

a==b;

4.1. 對向量a新增元素的幾種方式

1.向向量a中新增元素

vector<

int>a;

for(

int i=

0;i<10;

++i)

2.從陣列中選擇元素向向量中新增

int a[6]

=;vector<

int> b;

for(

int i=

0;i<=4;

++i)

3.從現有向量中選擇元素向向量中新增

int a[6]

=;vector<

int>b;

vector<

int>

c(a,a+4)

;for

(vector<

int>

::iterator it=c.

begin()

;itend();

++it)

4.從檔案中讀取元素向向量中新增

ifstream in

("data.txt");

vector<

int>a;

for(

int i;in>>i)

5.常見錯誤賦值方式

vector<

int>a;

for(

int i=

0;i<10;

++i)

//下標只能用來獲取已經存在的元素

4.2 從向量中讀取元素

1.通過下標方式獲取

int a[6]

=;vector<

int>

b(a,a+4)

;for

(int i=

0;i<=b.

size()

-1;++i)

2.通過迭代器方式讀取

int a[6]

=;vector<

int>

b(a,a+4)

;for

(vector<

int>

::iterator it=b.

begin()

;it!=b.

end(

);it++

)

#include

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

sort

(a.begin()

,a.end()

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

reverse

(a.begin()

,a.end()

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

copy

(a.begin()

,a.end()

,b.begin()

+1);

//在a中的從a.begin()(包括它)到a.end()(不包括它)的元素中查詢10,若存在返回其在向量中的位置

find

(a.begin()

,a.end()

,10);

OpenGL GLSL 內建變數與 常用內建函式

在著色器中我們一般都會宣告變數來在程式中使用,但是著色器中還有一些特殊的變數,不宣告也可以使用。這些變數叫做內建變數。內建變數,相當於著色器硬體的輸入和輸出點,使用者利用這些輸入點輸入之後,就會看到螢幕上的輸出。通過輸出點可以知道輸出的某些資料內容。當然,實際上肯定不會這樣簡單,這麼說只是為了幫助理...

JSP常用內建物件

outrequestresponsepagecontext 很少用到 sessionconfig exception page 這裡主要介紹常用的內建物件及其方法 println 向客戶端輸出各種資料型別 newline 輸出乙個換行符 close 關閉 輸出流 flush 輸出緩衝區裡的內容 cl...

常用的內建物件

new date new date month dd,yyyy hh mm ss new date yyyy,mth,dd,hh,mm,ss new date yyyy,mth,dd new date ms getdate 從date物件返回乙個月中的某一天 1 31 getday 從date物件返...