arr.hpp
#pragma once
#include
using
namespace std;
//通用的陣列模板類
template
<
class
t>
class
myarray
//深拷貝構造,防止淺拷貝
myarray
(const myarray& a)
}//賦值運算子過載,防止淺拷貝 a=b=c鏈式程式設計
myarray&
operator=(
const myarray& a)
//非自賦值if(
this
!=&a)
}return
*this;}
//尾插法
void
push_back
(const t& val)
this
->arr[size]
= val;
size++;}
//尾刪法
void
end_del()
//通過下標訪問陣列中元素---運算子過載
t&operator
(int index)
//返回陣列的容量
intgetcap()
//返回陣列大小
intgetsize()
~myarray()}};
main.cpp
#include
#include
"arr.hpp"
using
namespace std;
//列印輸出
void
print
(myarray<
int>
& a)
intmain()
print
(a);
cout <<
"陣列容量:"
<< a.
getcap()
<< endl;
cout <<
"陣列大小:"
<< a.
getsize()
<< endl;
//尾刪法測試
a.end_del()
;print
(a);
cout <<
"陣列容量:"
<< a.
getcap()
<< endl;
cout <<
"陣列大小:"
自定義資料型別測試:
#include
#include
#include
"arr.hpp"
using
namespace std;
class
person
person
(string name,
int age)
:name
(name)
,age
(age)
string getname()
intgetage()
};//列印輸出(類模板物件做函式引數)
C 有界陣列模板類(類模板)
題目描述編寫有界陣列模板boundarray 即檢查對陣列元素下標引用並在下標越界時終止程式的執行 能夠儲存各種型別的資料。要求實現對陣列進行排序的方法sort,及對排序後的陣列進行查詢的方法search。輸入 第一行先輸入t,表示有t個測試用例 從第二行開始輸入每個測試用例的資料。首先輸入資料型別...
模板類之(陣列)
一 陣列類 shuzu.h 二 應該要注意的幾個問題 1 為什麼拷貝建構函式要這麼複雜?為什麼不是簡單的賦值?這涉及到深拷貝和淺拷貝的問題。簡單的對物件成員賦值只能實現淺拷貝,淺拷貝會造成記憶體訪問的安全性問題 同一塊記憶體被釋放兩次 2 為什麼有些函式返回值是物件的引用,改為返回物件值可以嗎?如果...
通用的類模板
但是,如果您需要一次讀取或更改幾個變數 std atomic a,b,c,並且不想實現無鎖演算法並解決aba問題,那麼您需要使用鎖。cpu原子cas功能 在大多數cpu中 可以檢查是否僅更改了乙個最大寬度為64位的變數,但是那時可以更改另乙個變數。解決方案 std atomic 允許對t型使用任何大...