60 C 類模板的應用

2021-09-28 10:46:23 字數 1709 閱讀 5429

設計乙個陣列模板類(myarray),完成對不同型別元素的管理

#pragma once

template

<

class

t>

class

myarray

//拷貝構造

myarray

(const myarray & arr)

}//過載 操作符 arr[0]

t&operator

(int index)

//尾插法

void

push_back

(const t & val)

this

->paddress[

this

->m_size]

= val;

this

->m_size++;}

void

pop_back()

this

->m_size--;}

intgetsize()

//析構

~myarray()

}private

: t * paddress;

//指向乙個堆空間,這個空間儲存真正的資料

int m_capacity;

//容量

int m_size;

// 大小};

測試**:

class

person

person

(string name,

int age)

public

: string mname;

int mage;};

void

printmyarrayint

(myarray<

int>

& arr)

cout << endl;

}void

printmyperson

(myarray

& personarr)}

myarray<

int>

myarrayint(10

);for(

int i =

0; i <

9; i++

) myarrayint.

push_back

(100);

printmyarrayint

(myarrayint)

;myarray

myarrayperson(10

);person p1

("德瑪西亞",30

);person p2

("提莫",20

);person p3

("孫悟空",18

);person p4

("趙信",15

);person p5

("趙雲",24

);myarrayperson.

push_back

(p1)

; myarrayperson.

push_back

(p2)

; myarrayperson.

push_back

(p3)

; myarrayperson.

push_back

(p4)

; myarrayperson.

push_back

(p5)

;

60 C 比較string類字串

如果使用string類字串而不是c 風格字串,比較起來將簡單些,因為類設計讓您能夠使用關係運算子進行比較。這之所以可行,是因為類函式過載 重新定義 了這些運算子。後面將介紹如何將這種特性加入到類設計中,但從應用的角度說,我們限制只需直到可以將關係運算子用於string物件即可。下面的程式通過修改上乙...

60 陣列類模板

模板引數可以是數值型引數 非型別引數 template void func t a n 使用模板引數定義區域性陣列 func 數值型模板引數的限制 變數不能作為模板引數,浮點數 計算機內部表示不精確 不能作為模板引數,類物件不能作為模板引數。本質 模板引數是在編譯階段被處理的單元,因此,在編譯階段必...

牛客練習賽60 C 操作集錦

整理的演算法模板 acm演算法模板總結 分類詳細版 有一款自走棋有26種操作,每種操作我們都用a,b,c,d,x,y,za,b,c,d,x,y,za,b,c,d,x,y,z的符號來代替.比如對於abababababab,長度為222且本質不同的結果有ab,aa,ba,bbab,aa,ba,bbab,...