向量对象库,可以存储其他对象类型的对象
Vector Object Invetory, Object that can store other Object types?
我正在尝试创建一个可以容纳任何对象的库存系统
例如
struct Ore{
string name;
int Size;
};
struct Wood{
string name;
int size;
int color;
};
我的想法是创建一个具有2个向量的结构体,一个用于数字数字,如具有攻击,防御和东西的项目,另一个用于名称,描述或其他文本的向量。为不同的项类型使用多个构造函数。
我的问题是我听说向量可以占用更多的内存,我希望这个程序创建数百或数千个项目。
所以我正在寻找更好的内存存储的任何建议。
struct Invetory{
vector<float> Number;
vector<string> Word;
Invetory(string n,float a)
{Word.push_back(s); Number.push_back(a)}
Invetory(string n,float a, float b)
{Word.push_back(s); Number.push_back(a); Number.push_back(b);}
};
vector<Invetory>Bag_Space;
你尝试优化得太早了。
用最干净的东西。vector
不是一个疯狂的选择。(在c++中使用数组或std::vector,性能差距是多少?)
处理出现的性能问题。
查看以下关于过早优化的讨论。
-
何时优化过早?
https://softwareengineering.stackexchange.com/questions/80084/is-premature-optimization-really-the-root-of-all-evil
顺便说一句,我偶然发现了这个关于向量潜在性能问题的有趣讨论。总之,如果您的向量正在缩小,那么内存占用不会随着向量大小而缩小,除非您调用swap
函数。如果你要创建很多向量并且不需要将元素初始化为0,那么不用
vector<int> bigarray(N);
试
vector<int> bigarray;
bigarray.reserve(N);
相关文章:
- 具有包含其他对象的类的对象创建顺序
- 对于BTreeMap和其他依赖于Ord的东西,是否有等效于C++比较器对象?
- 如何在线程中初始化对象,然后在其他地方使用它?
- 如何在其他类中使用参数化构造函数制作类的对象?
- 当只有一个线程主要使用该对象而其他线程很少使用它时,如何最小化该对象的互斥锁锁定?
- 如何在不使用new的情况下保持在其他对象中创建的对象存活?
- 为什么最后一个推回向量的对象的字段会转移到向量的其他对象?
- 将抽象对象从主线程发送到其他线程
- 通过向构造函数其他对象引用页面来创建对象
- 如何在 opengl 中仅旋转特定对象而不影响其他对象?
- 推断大多数模板对象的参数,但在调用模板函数时对其他对象显式
- 如何定义此"if block"中其他无效输入的值,以便在c ++中将字符串转换为对象?
- 指向用随机指针归档的其他类对象的指针的c++向量
- 访问其他类中多个对象的私有成员向量
- 在另一个 QThread 上运行成员方法时,无法将事件发送到其他线程拥有的对象
- 当我更改其他 Mat 对象时,垫子值会更改
- neak_ptr vs unique_ptr参考 - 传递接口inmand tos to其他对象
- 谷神星求解器:残差函子使用的可变对象是否良好实践?还有什么其他选择
- 如何在其他文件中使用主文件的场景对象
- 修改对象也会修改同一类的所有其他对象