利用模板陣列類,可以實現類似於容器的功能
myvector.h
#pragma once
#include
using
namespace std;
template
<
typename t>
class
myvector
;
myvector.cpp
#pragma once
#include
"myvector.h"
template
<
typename t>
myvector
::myvector
(int size)
template
<
typename t>
myvector
::myvector
(const myvector& obj)
//分配記憶體空間
this
->m_len = obj.m_len;
this
->m_space =
new t[
this
->m_len]
;//賦值
for(
int i =
0; i < m_len; i++)}
template
<
typename t>
myvector::~
myvector()
}template
<
typename t>
t& myvector
::operator
(int index)
template
<
typename t>
myvector
& myvector
::operator=(
const myvector& obj)
m_len = obj.m_len;
m_space =
new t[m_len]
;for
(int i =
0; i < m_len; i++
)return
*this;}
template
<
typename t>
ostream&
operator
<<
(ostream& out, myvector
& obj)
return out;
}
myvector_test.cpp
#pragma once
#define _crt_secure_no_warnings
#include
#include
"myvector.cpp"
using
namespace std;
//1 優化teacher類,屬性變成char* pname,建構函式裡面分配記憶體
//2 析構函式 釋放pname指向的記憶體空間
//3 避免淺拷貝 過載= 重寫拷貝建構函式
//4 在teacher中過載<<
//5 在模板陣列類 存int char teacher teacher*
//*****>stl 容器的概念
class
teacher
;teacher::
teacher()
teacher::
teacher
(const teacher& obj)
age = obj.age;
int len =
strlen
(obj.pname)
; pname =
newchar
[len +1]
;strcpy
(this
->pname, obj.pname);}
teacher::
teacher
(const
char
* name,
int age)
teacher::
~teacher()
}void teacher::
printteacher()
teacher& teacher::
operator
=(teacher& obj)
age = obj.age;
int len =
strlen
(obj.pname)
; pname =
newchar
[len +1]
;strcpy
(pname, obj.pname)
;return
*this;}
ostream&
operator
<<
(ostream& out, teacher& obj)
intmain()
myvector<
int> myv2 = myv1;
cout << myv2 << endl;
myvectort(
4); teacher t1
("lily",23
),t2(
"lucy",24
),t3(
"bob",33
),t4(
"alex",43
);t[0
]= t1;
t[1]= t2;
t[2]= t3;
t[3]= t4;
cout << t << endl;
myvector>tt(
4);//定義指向teacher的指標
tt[0]
=&t1;
//傳位址
tt[1]
=&t2;
tt[2]
=&t3;
tt[3]
=&t4;
for(
int i =
0; i <
4; i++
)return0;
}
C 模板實現智慧型陣列類
這個類的使用非常有限,不能說是真正的智慧型陣列 對於一般的資料型別還可以,比如int float char等 但是,string類這樣的類型別好像不是很好 但是一些基礎的東西卻是學習的重點 標頭檔案myarray.h pragma once include using namespace std t...
C 陣列實現佇列 堆疊 模板類
前面發現老師要求我們寫乙個堆疊 佇列,但是我發現每一次都要修改資料型別,而且我在網上也沒找到模板類,所以我就自己看了看模板類的知識,自己用陣列寫了乙個,貌似使用起來沒有什麼問題。1.迴圈佇列 templateclass myqueue templatemyqueue myqueue int max ...
C 有界陣列模板類(類模板)
題目描述編寫有界陣列模板boundarray 即檢查對陣列元素下標引用並在下標越界時終止程式的執行 能夠儲存各種型別的資料。要求實現對陣列進行排序的方法sort,及對排序後的陣列進行查詢的方法search。輸入 第一行先輸入t,表示有t個測試用例 從第二行開始輸入每個測試用例的資料。首先輸入資料型別...