我有一个向量,std::string
它代表另一个对象指针向量的结构。我想生成这个对象指针向量,如果有两个相同的对象,向量中的指针也是相同的。
不知道我刚才说的是什么意思?让我给你举个例子。假设我有std::vector
一个std::string
:
std::vector<std::string> names;
names.push_back(std::string("A"));
names.push_back(std::string("A"));
names.push_back(std::string("B"));
names.push_back(std::string("C"));
names.push_back(std::string("A"));
现在让我们假设这些名称(A
和B
)C
代表 an 的三个不同实例Object
:
Object* ptr_A = new Object(1); // A
Object* ptr_B = new Object(2); // B
Object* ptr_C = new Object(3); // C
我现在想生成包含指向 的指针的向量,Object
其顺序与向量中的顺序相同names
:
std::vector<Object*> objects;
objects.push_back(ptr_A);
objects.push_back(ptr_A);
objects.push_back(ptr_B);
objects.push_back(ptr_C);
objects.push_back(ptr_A);
这样当两个名称相同时,指针也相同。
我将如何有效地做到这一点?请注意,我希望在执行此操作的函数内动态分配对象,以便以后可以使用该向量。
我将使用它根据名称从文件中读取对象,但我想防止生成多个基本相同的对象。
由于这是家庭作业,我还不能使用 C++11。