Vu que tes ID sont contigus, tu peux faire simple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class A
{
private:
std::vector<MonType> monVector;
public:
void creer_objet() { monMap.push_back(MonType()); }
MonType& getObjetAtId(int ID)
{
if(ID >= monVector.size())
// Traiter le problème éventuellement..
throw std::logic_error();
return monMap[ID-1];
}
}; |
Si tes ID ne sont pas contigus alors la solution d'oodini est la meilleure, il y a juste une coquille dans son code :
std::map<int, MonType> monMap;
N'oublie pas d'inclure #include <vector> ou #include <map> selon ce que tu utiliseras.
Partager