是的,C++中的std::vector
可以存储自定义类型。为了实现这一点,你需要确保你的自定义类型满足一些基本要求,例如具有默认构造函数、拷贝构造函数和析构函数。这样,std::vector
就可以在需要时创建、复制和销毁你的自定义类型的对象。
下面是一个简单的示例,展示了如何使用std::vector
存储自定义类型:
#include<iostream>
#include<vector>
class MyClass {
public:
int value;
// 默认构造函数
MyClass() : value(0) {}
// 拷贝构造函数
MyClass(const MyClass& other) : value(other.value) {}
// 析构函数
~MyClass() {}
};
int main() {
std::vector<MyClass> myVector;
// 向向量中添加对象
MyClass obj1, obj2;
obj1.value = 1;
obj2.value = 2;
myVector.push_back(obj1);
myVector.push_back(obj2);
// 访问向量中的对象
for (const auto& obj : myVector) {
std::cout << "Value: "<< obj.value<< std::endl;
}
return 0;
}
在这个示例中,我们定义了一个名为MyClass
的自定义类型,并在main
函数中创建了一个std::vector
来存储这些对象。然后,我们向向量中添加了两个对象,并遍历向量以打印每个对象的值。