当你禁用拷贝构造函数时,你可以使用智能指针来构造 std::vector 的元素。
你可以使用 std::unique_ptr 来保存 vector 中的元素,这样你就可以避免使用拷贝构造函数了。
例如:
#include <vector>
#include <memory>
class MyClass {
public:
MyClass() {}
MyClass(const MyClass&) = delete;
// other methods...
};
int main() {
std::vector<std::unique_ptr<MyClass>> v;
v.push_back(std::make_unique<MyClass>());
// other operations...
}
这样,你就可以在禁用了拷贝构造函数的情况下使用 std::vector 了。