函数模板设计一个通用集合类
时间: 2024-05-03 10:17:30 浏览: 17
好的,下面是一个简单的通用集合类的函数模板设计:
```c++
template<typename T>
class Collection {
private:
std::vector<T> data; // 内部使用 vector 存储元素
public:
// 向集合中添加元素
void add(const T& item) {
data.push_back(item);
}
// 返回集合中元素的数量
int size() const {
return data.size();
}
// 返回集合中第 index 个元素的引用
T& operator[](int index) {
return data[index];
}
// 返回集合中第 index 个元素的常量引用
const T& operator[](int index) const {
return data[index];
}
// 迭代器类型
typedef typename std::vector<T>::iterator iterator;
typedef typename std::vector<T>::const_iterator const_iterator;
// 返回指向第一个元素的迭代器
iterator begin() {
return data.begin();
}
// 返回指向最后一个元素的迭代器
iterator end() {
return data.end();
}
// 返回指向第一个元素的常量迭代器
const_iterator begin() const {
return data.begin();
}
// 返回指向最后一个元素的常量迭代器
const_iterator end() const {
return data.end();
}
};
```
这个集合类使用了标准库中的 `vector` 来存储元素。它提供了 `add()` 函数来向集合中添加元素,`size()` 函数来返回集合中元素的数量,以及支持下标操作符来访问集合中的元素。此外,还提供了迭代器类型和 `begin()`/`end()` 函数来支持迭代访问集合中的元素。
你可以根据需要添加其他函数或成员变量来扩展这个集合类。