//!內容:陣列模板類
/*修改:2023年9月13上午
成員方法中delete未正確匹配
改進:2023年9月13晚上
陣列總量改為固定
*/#define _crtdbg_map_alloc
#include #include #include "arraytemplate.h"
#include "arr.h"
#include int main()
clock_t two = clock();
arraytesttwo(1);
for (int i = 0; i < 10000; i++)
clock_t three = clock();
cout << "add(5, 1)*10000固定大小arr: " << (double)(two - one) / clocks_per_sec << endl;
cout << "add(5, 1)*10000不固定array: " << (double)(three - two) / clocks_per_sec << endlfor (int i = 0; i < test.size(); i++)
cout << endl << "間隔插入數字6:";
for (int i = 5; i >= 0; i--)
for (int i = 0; i < test.size(); i++)
cout << endl << "第乙個數字4位於:位" << test.search(4);
test.delete(9);//刪除位9的4
test.reset(4, 2);//將位2設定為4
cout << endl << "reset(4, 2)後4位於:位" << test.search(4) << endl << endl;
cout << "測試char *:" << endl;
cout << "宣告乙個長度為3的char型陣列並賦值:\n";
arrstr("aa");
for (int i = 0; i < str.size(); i++)
str.add("add");
str.reset("reset", 1);
cout << "\n現在陣列內容為:\n";
for (int i = 0; i ss("string");
for (int i = 3; i >= 0; i--)
ss.reset("111", 1);
for (int i = 0; i
#pragma once
template class arr
explicit arr(const t&t)//構造
~arr()//析構
//下標訪問
t&operator(int i);
//插入or增加乙個元素
bool add(const t&t, int i = -1);
//刪除某個元素
bool delete(int i = -1);
//重置某個元素
bool reset(const t&t, int i);
//查詢某個元素第乙個下標
int search(const t&t);
//查詢陣列長度
int size();
};template t& arr::operator(int i)
return arr[i];
}template bool arr::add(const t&t, int i)
else if (i < 0 || i >= count)
else if (i >= 0 && ii; x--)
arr[x] = arr[x - 1];
arr[i] = t;
return true;
} else return false;
}template bool arr::delete(int i)
else if (i >= 0 && count>0 && ibool arr::reset(const t&t, int i)
else return false;
}template int arr::search(const t&t)
//!使用模板實現乙個自定義的陣列類,
//!能夠新增、修改、刪除、使用下標訪問資料、
//!根據資料返回資料組中第乙個符合的小標、
//!獲取陣列中當前儲存的資料個數
#pragma once
#include template class array
array()
explicit array(const t&t);//初始化為同乙個數值
~array()
temp = nullptr;
} //下標訪問
t&operator(int i);
//插入or增加乙個元素
bool add(const t&t, int i = -1);
//重置某個元素
bool reset(const t&t,int i);
//刪除某個元素
bool delete(int i=-1);
//查詢某個元素第乙個下標
int search(const t&t);
//查詢陣列長度
int size();
};template array::array(const t&t)
template t& array::operator(int i)
return ar[i];
}template bool array::add(const t&t,int i)
else if (i >= 0 && ibool array::reset(const t&t,int i)
else return false;
}template bool array::delete( int i)
else if(i>=0&&count>0&&iint array::search(const t&t)
C 自定義類模板
c 中有乙個重要特性,那就是模板型別。類似於objective c中的泛型。c 通過類模板來實現泛型支援。在引入typename之前,class關鍵字早已在模板申明中被使用。在typename關鍵字引入後,可以用它來替代class關鍵字。如 template和 template相同 1 定義乙個te...
C 模板 37 類模板練習 自定義陣列類
到這裡,模板相關基本學習完,現在來利用模板類寫乙個 例子。這個例子就是自定義乙個陣列模板類,需要實現陣列的一些常用操作。例如拷貝,有參構造,查詢,刪除等。1.自定義陣列類需求 模板案例描述 實現乙個通用的陣列類,要求如下 1 可以對內建資料型別以及自定義資料型別的資料進行儲存 2 將陣列中的資料儲存...
自定義陣列類
在學習c 的過程中,我們經常使用到陣列,那怎麼去定義乙個類去實現陣列的功能呢?我們先列出一些經常對陣列進行的一些操作,1 建立乙個指定容量的陣列 2 用已有的陣列初始化另乙個陣列 3 用已有的陣列給另乙個陣列賦值 4 給陣列新增元素 給陣列元素賦值 5 獲取陣列指定元素的值 6 輸入一定數量的值,將...