C 學習之旅 陣列

2021-10-02 12:08:54 字數 3609 閱讀 4019

二、c++11新增的模板類array

三、stl模板中的陣列vector

typename arrayname[arraysize]

;

陣列宣告必須指明:

儲存在陣列中每個元素的型別(typename);

陣列名稱(arrayname);

陣列大小(arraysize),必須是整型常數或者常數表示式。

陣列只能在定義的時候初始化。

int arr[4]

=;

初始化陣列時,提供的值可以少於陣列的元素個數。編譯器會把其他元素設定為0。
int arr[4]

=;//arr[0]=1, arr[1]=0, arr[2]=0, arr[3]=0

如果初始化陣列時沒有指定元素個數,編譯器會計算元素個數。
int arr=

;int arrsize =

sizeof

(arr)

/sizeof

(int);

//4

array是c++11新增的模板類,在標頭檔案中宣告,它對陣列進行了封裝,是長度固定的陣列。array中提供一些符合stl標準的方法,使得stl演算法可以運用於array物件。

array物件的建立方式

array<

int,

5> ai;

//建立乙個有5個int型元素的陣列

array<

double,4

> ad =

;//列表初始化,c++11新特性

array常用函式

函式功能void assign(const t& value)

將容器中所有元素賦值為value。

void fill(const t& value)

將容器中所有元素填充為value。

void swap(array& x)

交換呼叫物件與x中所有元素。

iterator begin()

返回第乙個元素對應的迭代器

iterator end()

返回最後乙個元素下乙個位置的迭代器

size_type size() const

返回array物件的元素個數

size_type max_size() const

返回array物件可容納的元素個數,值與size()相同

bool empty() const

此函式只會返回false

reference at(size_type pos)

返回pos位置元素的引用,提供越界檢查

reference front()

返回第乙個元素的引用

reference back()

返回最後乙個元素的引用

t* data()

返回array物件位址,即array物件第乙個元素位址

vector模板類在標頭檔案中宣告,是陣列的一種類表示。它提供了自動記憶體管理功能,可以動態的改變vector物件的大小,並隨著元素的新增和刪除而增大和縮小。

vector建立物件的方式

// 建立乙個空vector物件

vector<

int> vi;

// 定義乙個大小為10,元素值都為1的vector。

vector<

int>

vi1(10,

1);// 定義乙個大小為10,元素值為0的vector。沒有給定初始值,會呼叫元素型別的預設建構函式生成物件。

vector<

int>

vi2(10)

;// 使用初始化列表(initializer_list)初始化vector(c++11新特性)。

vector<

int> vi3 =

;// 用已有vector中資料初始化。

vector<

int>

vi4(vi3.

begin()

+1, vi3.

end())

;

vector常用函式

函式功能void push_back(const t& val)

在最後乙個元素後面插入val

void pop_back()

刪除最後乙個元素

iterator insert(itetator pos, const t& val)

在pos位置的元素前插入val

iterator insert(iterator pos, size_type n, const t& val)

在pos位置的元素前插入n個值為val的元素

iterator insert(iterator pos, iterator first, iterator last)

在pos位置的元素前插入區間[first, last)中的元素

void resize(size_type n)

重置vector物件大小。多刪少補,補t()。

void resize(size_type n, const t& val)

重置vector物件大小。多刪少補,補val。

void reserve( size_type n)

vector物件的容量小於n時擴充到n

iterator erase(iterator pos)

刪除pos位置的元素

iterator erase(iterator first, iterator last)

刪除區間[first, last)中的元素

void clear()

清空所有元素

vector& operator=(const vector& x)

賦值運算子過載

void assign(size_type n, const t& val)

賦n個值為val的元素到vector中

void assign(iterator first, iterator last)

將區間[first, last)中的元素賦值給vector

void swap(vector& x)

交換呼叫vector物件與x中的元素

t* data()

返回vector物件中第乙個元素的位址

bool empty()

判斷vector是否為空(返回true時為空)

size_type size() const

返回vector物件的元素個數

size_type max_size() const

返回容器所能容納的最大數目的元素個數。這是系統的限制,容器不一定能達到該大小。

size_type capacity() const

返回vector物件容量

iterator begin()

返回第乙個元素的迭代器

iterator end()

返回最後乙個元素下乙個位置的迭代器

t& at(size_type pos)

返回pos位置元素的引用 ,提供越界檢查

t& front()

返回第乙個元素的引用

t& back()

返回最後乙個元素的引用

php學習之旅 4 陣列

php學習之旅 4 陣列 1 陣列種類 數值索引陣列 具有數值索引的陣列 多維陣列 包含乙個或多個陣列的陣列 2 數值索引陣列 第一種初始化方法 cars array saab volvo bmw toyota 第二種初始化方法 cars 0 saab cars 1 volvo cars 2 bmw...

C 學習之旅(1)

第一,輸入輸出流都來自控制台。1 using system 2using system.collections.generic 3using system.linq 4using system.text 56 namespace 7年月日是該年的第天。第二,輸入輸出都來自於視窗的textbox。下面...

C語言奇妙之旅 指標陣列

乙個陣列的元素值為指標則是指標陣列。指標陣列是一組有序的指標的集合。一般形式 資料型別 陣列名 陣列長度 例如 程式功能 指標陣列 程式版本 v0.1.00 q是乙個指標陣列,三個元素分別指向二維陣列a的各行。然後用for迴圈輸出制定的陣列元素。指標陣列可以作為函式的參量使用,使用方式與普通陣列類似...