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 ...