C 陣列和vector的基本操作

2022-04-07 17:21:16 字數 2045 閱讀 1961

int a[5] = ;
int size = sizeof(a) / sizeof(*a);

for(int i = 0; i < size; i++)

cout << a[i] << " ";

sizeof()是乙個操作符(operator),返回物件或型別所佔記憶體空間的位元組數。

sizeof(a),返回陣列a所佔記憶體空間的位元組數;sizeof(*a),返回陣列a首元素所佔記憶體空間的位元組數。兩者相除即為陣列長度。

for(int& item:a)

cout << item << " ";

for依次迴圈,item依次作為每個元素的引用。

#include using namespace std;
sort()包含在標頭檔案中,定義在命名空間std中。

sort(a, a + size);

for(int& item:a)

cout << item <<" ";

sort()可以傳入三個引數。第乙個引數為要排序陣列的首位址,第二個引數為要排序陣列的尾位址,第三個引數制定排序型別(從小到大or從大到小)。第三個引數可以省略,預設從小到大排;且第三個引數用起來比較麻煩,若有從大到小的需求,可以先從小到大排,之後倒序輸出。

陣列的大小不能發生變化,需要在初始化時指定陣列的大小。有時它會非常不方便並可能造成浪費。因此,大多數程式語言都提供內建的動態陣列,它仍然是乙個隨機訪問的列表資料結構,但大小是可以發生改變的。例如,在 c++ 中的vector。

#include
用到vector模板類時,要注意引用標頭檔案。

// 1. initialize

vectorv0;

vectorv1(5, 0);//v1有5個元素,均為0

// 2. make a copy

vectorv2(v1.begin(), v1.end());

vectorv3(v2);

// 3. cast an array to a vector

int a[5] = ;

vectorv4(a, *(&a + 1));

定義v4時,傳入兩個引數a和*(&a+1),兩個都是指標。a指向陣列的首元素位址,&a為指向陣列指標的指標,加一後就直接跨越了乙個陣列長度,再用*取值後,*(&a + 1)為指向陣列尾元素的位址。

cout << "[version 1] the contents of v4 are:";

for (int i = 0; i < v2.size(); ++i)

cout << endl;

cout << "[version 2] the contents of v4 are:";

for (int& item : v4)

cout << endl;

cout << "[version 3] the contents of v4 are:";

for (auto item = v4.begin(); item != v4.end(); ++item)

cout << endl;

vector用方括號加數字的方式訪問內部具體的某個元素。

v.size()返回vector的長度。

v.begin()返回vector的首位址,v.end返回vector的尾位址。

auto自身並不是一種資料型別,其只是一種給物件自動匹配型別的機制。

// sort

sort(v4.begin(), v4.end());

// add new element at the end of the vector

v4.push_back(-1);

// delete the last element

v4.pop_back();

v.push_back(x)在vector尾部新增元素x,v.pop_back()刪除最後乙個元素。

c 容器vector的基本操作

在c 中,vector是乙個十分有用的容器,下面對這個容器做一下總結。1 基本操作 1 標頭檔案 include.2 建立vector物件,vectorvec 3 尾部插入數字 vec.push back a 4 使用下標訪問元素,cout vector iterator it for it vec...

C 中vector的基本操作

建立乙個空的 vector vectorv 新增元素 注意 push back 和pop back只能在尾部新增和刪除,不能操作頭部 v.push back 3.1415926 v.push back string adiabatic 刪除元素 pop back v.pop back 3.14159...

C 中vector的基本操作

在c 中,vector是乙個十分有用的容器,下面對這個容器做一下總結。1 基本操作 1 標頭檔案 include.2 建立vector物件,vectorvec 3 尾部插入數字 vec.push back a 4 使用下標訪問元素,cout vector iterator it for it vec...