I have an unordered map std::unordered_map<unsigned int, MyObject*> myDictionary
.
When I want to add an entry, I first want to check if the key already exists. If it does, I need to access my object to call a function.
If the key doesn't exists, I want to create a new MyObject with this key.
Is it better to make this ?
MyObject *my_obj;
try
{
my_obj = myDictionary.at(key);
}
catch (int e)
{
my_obj = new MyObject();
myDictionary[key] = my_obj;
}
my_obj->Function();
Or this ?
MyObject *my_obj;
if(myDictionary.find(key) == myDictionary->end())
{
my_obj = new MyObject();
myDictionary[key] = my_obj;
}
else
{
my_obj = myDictionary[key];
}
my_obj->Function();
Or something else ?