C 使用模板對陣列進行封裝

2021-10-07 22:18:40 字數 1816 閱讀 3958

模板標頭檔案 .hpp

#pragma once

#include

#include

using

namespace std;

template

<

class

t>

class

myarray

myarray

(const myarray& art)}~

myarray()

} myarray&

operator

=(myarray& p2)

//p1=p2

this

->parray=

new t[art-

>max]

;this

->size = art.size;

this

->max = art.max;

for(

int i =

0; i < size; i++

)this

->parray[i]

= art.parray[i];}

//過載

t&operator

(int index)

//插入,尾插法

void

push_back

(t val)

//獲取陣列大小

intgetsize()

//獲取容量

intgetmax()

private

: t * parray;

int max;

//容量

int size;

//當前大小

};

使用標頭檔案對封裝後的陣列進行操作

#include

"arraypackage.hpp"

void

arrayprint

(myarray<

int>

& p)

cout<

}class

person

person

(string name,

int age)

:tname

(name)

,#br>br#(age)

string tname;

int tage;};

void

arrayprint

(myarray

& p)

cout<

}void

test()

arrayprint

(arr)

; person p1

("a",10

);person p2

("b",20

);person p3

("c",30

);person p4

("d",40

);myarray

arr1(10

);arr1.

push_back

(p1)

; arr1.

push_back

(p2)

; arr1.

push_back

(p3)

; arr1.

push_back

(p4)

;arrayprint

(arr1);}

void

main()

實現結果:

C 對陣列進行複製

int a int b 5 std copy std begin a std end a std begin b for auto e b cout上述程式中,copy演算法將陣列a區間中的數複製到以begin b 開始的區間中去.std arrayarr std arraycopy copy ar...

對陣列進行總結

一維陣列 1 陣列 arr n 其中n為常量。注 陣列未初始化為隨機值。2 char 型別的陣列 例 char arr1 char arr2 a b c printf s n arr1 printf d n strlen arr1 注 s 遇到 0 才可以結束 字串求長度 0 為標誌,但不算做乙個字...

對陣列進行排序

函式名稱 排序依據 陣列索引鍵保持 排序的順序 相關函式 array multisort 值鍵值關聯的保持,數字型別的不保持 第乙個陣列或者由選項指定 array walk asort 值是 由低到高 arsort arsort 值是 由高到低 asort krsort 鍵是 由高到低 ksort ...