【发布时间】:2014-09-29 10:30:22
【问题描述】:
我想存储具有特定名称的对象。
我想使用struct,然后将它们存储在vector,但有人建议我宁愿使用不同的数据结构,更简单一点,但我似乎找不到。
我目前的(“复杂”)解决方案:
//in header file
struct objStorage{
Classname obj;
string name;
};
vector<objStorage> vec;
//in constructor
objStorage firstObj;
firstObj.obj = new Classname();
firstObj.name = "foo";
vec.push_back(firstObj);
有没有更简单的解决方案(数据结构)?
我应该补充一点,一旦我将结构存储(复制?)在向量中,我就不需要该结构,因为这一切都发生在另一个类(构造函数)中,所以我不希望在调用构造函数时出现任何问题次。
【问题讨论】:
-
你想怎么用这个?按名字查东西?按名称顺序列出它们?您还将
obj设置为new Classname和"foo"- 所以这不会编译。谁删除了new Classname()? -
我需要稍后按名称查找它们,是的。我的意思是第一个对象,我会编辑它。析构函数负责删除类名
-
你为什么不去哈希映射?这不是反问,我想知道是不是有什么特殊的要求不能使用。
-
@Happy 我是 C++ 新手,所以我没有考虑过。我马上查一下
标签: c++ object vector data-structures struct