注:これと同様の質問が以前にSOで尋ねられたことは知っていますが、役に立たなかったり、非常に明確であるとは思いませんでした。
2 番目の注意:このプロジェクト/割り当ての範囲については、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*>
ことがありますが、メモリの割り当てが難しくなり、特定のインデックスに挿入された値が予想よりも大きい場合、近くのメモリの特定の部分が意図せず上書きされる可能性が常にあります。
私の実際のアプリケーションでは、ベクトルに挿入される可能性のある型はわかっていますが、これらの型がすべて同じスーパークラスから派生しているわけではなく、これらすべての型がベクトルまたはどのような順序でプッシュされるかという保証はありません。 .
コード サンプルで示した目的を安全に達成できる方法はありますか?
お時間をいただきありがとうございます。