C ++ толкать несколько типов на вектор

Замечания: Я знаю, что подобные вопросы были заданы на SO ранее, но я не нашел их полезными или очень ясными.

Второе примечание: Для объема этого проекта / назначения, я 'Я стараюсь избегать сторонних библиотек, таких как Boost.

Я пытаюсь понять, есть ли способ, которым я могу иметь один вектор для хранения нескольких типов в каждом из его индексов. Например, скажем, у меня есть следующий пример кода: I '

vector 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 может работать, но тогда это становится сложным с распределением памяти, и тогда всегда есть вероятность, что определенные части в соседней памяти могут быть непреднамеренно переопределены, если значение, вставленное в определенный индекс, больше, чем ожидалось.

В моем действительном заявлении я знаю, чтовозможный типы могут быть вставлены в вектор, но не все эти типы являются производными от одного и того же суперкласса, и нет никакой гарантии, что все эти типы будут помещены в вектор или в каком порядке.

Есть ли способ, которым я могубезопасно достичь цели, которую я продемонстрировал в моем примере кода?

Спасибо за ваше время.

Ответы на вопрос(3)

Ваш ответ на вопрос