定義 Box 類別(長寬高、體積),支援 <, +, == 運算子。設計泛型 Array 提供輸入、排序、查找、求和功能。
template
class Array {
vector data; // 內部用 vector 管理記憶體
public:
void input() { /* 讀取 n 筆 T 物件 */ }
void sort() { std::sort(data.begin(), data.end()); } // 需 T 支援 operator<
void find(const T& val) { /* 二分搜尋或線性 */ }
T sum() { return std::accumulate(data.begin(), data.end(), T{}); } // 需 T 支援 operator+
};
class Box {
int a,b,c; public: int V;
Box(int x,int y,int z):a(x),b(y),c(z),V(x*y*z) {}
bool operator<(const Box& o) const { return V < o.V; }
int operator+(const Box& o) const { return V + o.V; }
bool operator==(const Box& o) const { return V == o.V; }
};
Array arr;
arr.input();
arr.sort();
cout << "總體積: " << arr.sum();
T 滿足特定概念(可比較、可加、可預設建構)。concept 正式限制。