Comment puis-je stocker des objets de types différents dans un C++ conteneur?

Est-il C++ conteneur que je pourrais utiliser ou de construire qui peut contenir, disons, int et string et double types? Le problème que je me pose, c'est que chaque fois que j'essaie de remplir, de dire, d'une carte, d'un vecteur ou d'une liste, par exemple, les suivantes:

int x;
string y;
double z;

Je suis limité par le format:

list<int> mycountainer;
vector<string> mycontainer;

qui forces mycontainer à seulement constitués d'un seul type.

Avant tout le suggèrent les génériques, qui ne fonctionne pas, soit depuis la norme vector et list les contenants qui viennent avec le C++ sont déjà des génériques - ils peuvent être conteneur pour tous les types, mais ne peut pas contenir plusieurs types.

Je voudrais éviter d'utiliser Boost aussi, si possible, je préfère si il existe un moyen simple je ne pouvais le code moi-même.

[modifier]
Hey les gars, merci beaucoup pour vos suggestions, je dois expliquer comment je vais utiliser ce conteneur, mais c'est un peu compliqué, d'où le (gros) simplification ci-dessus. Je pense que la meilleure option ici est d'utiliser le Boost. Merci encore.

  • Euh... struct quelqu'un? Ou class?
  • avez-vous essayé d'utiliser union?
  • Dans la norme actuelle (cela va changer avec C++0x) vous ne pouvez pas utiliser std::string à l'intérieur de l'union.
  • Pourquoi voulez-vous faire? Comment comptez-vous sur l'utilisation du conteneur? Comment allez-vous vérifier ce que vous avez inséré?
  • Est-ce une sorte de dup de stackoverflow.com/questions/251403/... ?
  • La caisse Poco::Aucun ; Source est facile pocoproject.org/docs/Poco.Any.html

InformationsquelleAutor Ramsey | 2011-01-19