use C++ to Define a class template called Vector(a single-column- Matrix). The templates can instantiate a vector of any element type. Overloaded >> and << operators: to enable input and output of a vector, respectively
时间: 2024-03-03 18:51:44 浏览: 19
以下是定义一个名为Vector的类模板,可以实例化任何元素类型的向量,并重载了>>和<<运算符以使得可以输入和输出向量:
```cpp
template<typename T>
class Vector {
private:
std::vector<T> data;
public:
Vector() {}
Vector(std::vector<T> data) : data(data) {}
friend std::ostream& operator<<(std::ostream& os, const Vector& v) {
for (int i = 0; i < v.data.size(); i++) {
os << v.data[i] << std::endl;
}
return os;
}
friend std::istream& operator>>(std::istream& is, Vector& v) {
T element;
while (is >> element) {
v.data.push_back(element);
}
return is;
}
};
```
这个类模板中有一个私有成员变量 `data`,它是一个 `std::vector` 类型的向量。类模板中定义了两个公有的成员函数,一个默认的构造函数和一个接受一个 `std::vector` 类型参数的构造函数。同时,类模板中定义了两个友元函数重载了输入和输出运算符。在输出运算符中,使用了一个循环来遍历向量中的每一个元素,并输出到 `std::ostream` 中。在输入运算符中,每次从 `std::istream` 中读取一个元素并将其添加到向量中,直到无法继续读取。