C 順序表(模板總結)

2021-09-07 16:19:57 字數 3450 閱讀 9487

1、模板類的實質是什麼:讓程式設計師寫出和型別無關的**

2、模板的物件時什麼:方法或者類

3、是對類中的一系列操作,提供乙個不固定資料型別的方法

用模板做的類的時候要指明物件

stackintstack;  // int 型別的棧

stackstringstack;    // string 型別的棧

我們用的時候必須先指定   也就是先把這個引數傳給t

4、這裡順序表的實現可以先選擇型別然後選擇操作,因為乙個類就是乙個整體,屬性+方法。

7//定義8 template

9class

sqlistclass10;

3233

//線性表的初始化

34 template

35 sqlistclass::sqlistclass(int length) //

建構函式

3640 template

41 sqlistclass::sqlistclass() //

建構函式

4246

//線性表的銷毀

47 template

48 sqlistclass::~sqlistclass() //

析構函式

4952

53//

實現54

55//

線性表的建立,時間複雜度為o(n)

56 template

57void sqlistclass::createlist(t a, int

n)58

63 length =i;64}

6566

//輸出線性表的所有元素,時間複雜度為o(n)

67 template

68void sqlistclass::displist()

73 cout <

7576

//求線性表的長度,時間複雜度為o(1)

77 template

78int sqlistclass::listlength()

8182

//求順序表中某序列號的元素值,,時間複雜度為o(1)

83 template

84bool sqlistclass::getelem(int i, t &e)

8990

//按元素查詢其第乙個序號位置,時間複雜度為o(n)

91 template

92int sqlistclass::locateelem(t e)

9899

//在位置i插入資料元素e,時間複雜度為o(n)

100 template

101bool sqlistclass::listinsert(int

i, t e)

106 data[i-1] =e;

107 length++;

108return

true

;109

}110

111//

在位置i刪除資料元素,時間複雜度為o(n)

112 template

113bool sqlistclass::listdelete(int

i)118 length--;

119return

true

;120

}121

122//

翻轉順序表

123 template

124void sqlistclass::reverselist(sqlistclass&l)

131}

132133

/***********************************分界線**********************************

*/134

//建立順序表

135136

void

createlist_()while(length<=0

);143 cout<

請選擇順序表型別:輸入型別後面的數字

"<

144int

type;

145do

while(type<=0||type>=4

);150

151152

//建立

153 sqlistclasssqlist(length);

154155 cout<

建立線性表成功^_^

"<

156}

157158

//退出系統

159void

quitsystem()

162163

//主函式

164int

main()

181}

182183

//int arr[3] = ;

184//

//建立線性表

185//

sqlist.createlist(arr, 3);

186//

//輸出線性表

187//

sqlist.displist();

188//

//輸出線性表的長度

189//

cout << "sqlist length is " << sqlist.listlength() << endl;

190//

//求第二個位置的元素

191//

int a;

192//

sqlist.getelem(2, a);

193//

cout <

194//

//查詢元素5的位置

195//

cout << "the elem 5 local is " << sqlist.locateelem(5) << endl;

196//

//在位置4插入元素6

197//

sqlist.listinsert(2, 6);

198//

sqlist.displist();

199//

//在位置1刪除資料元素

200//

sqlist.listdelete(1);

201//

sqlist.displist();

202//

//翻轉順序表

203//

sqlist.reverselist(sqlist);

204//

sqlist.displist();

205return0;

206 }

模板順序表

用模板寫函式或類都與型別無關,因此,stl中都是用模板實現容器,下面我們來介紹用模板實現順序表。關於模板的知識,在之前的部落格中有提到 include using namespace std include 模板順序表 template class vector vector const t arr...

C 模板實現順序表

pragma once include include include linearlist.h using namespace std const int defaultsize 100 templateclass seqlist public linearlist int size const ...

C 模板類實現順序表

define crt secure no warnings include using namespace std include define length 10 typedef int datatype class vector 建構函式 有size個值為data的元素 vector size ...