注意:我知道以前在 SO 上已经提出过类似的问题,但我没有发现它们有帮助或很清楚。
第二个注意事项:对于这个项目/任务的范围,我试图避免使用第三方库,例如 Boost。
我正在尝试查看是否有一种方法可以让单个向量在其每个索引中保存多种类型。例如,假设我有以下代码示例:
vector<something magical to hold various types> vec;
int x = 3;
string hi = "Hello World";
MyStruct s = {3, "Hi", 4.01};
vec.push_back(x);
vec.push_back(hi);
vec.push_back(s);
我听说vector<void*>
可以工作,但是内存分配会变得很棘手,如果插入某个索引的值大于预期,附近内存中的某些部分总是有可能被无意覆盖。
在我的实际应用中,我知道有哪些可能的类型可以插入到向量中,但是这些类型并不都派生自同一个超类,并且无法保证所有这些类型都会被推送到向量中或以什么顺序.
有没有一种方法可以安全地实现我在代码示例中展示的目标?
感谢您的时间。