我想说:
typedef std::map<int,std::vecto<uint64_t>> ResRegestry;
typedef std::map<int, ResRegestry> EngagedList;
EngagedList engaged_list;
//...
try {
engaged_list.at(some_key).at(another_key));
} catch (EngagedListException& e) {
cout << "no such key for EngagedList\n";
} catch (ResRegestryException& e) {
cout << "no such key for ResRegestry\n";
}
直观地看来,应该有一种简单的方法来设置自定义异常EngagedListException,ResRegestryException,而不包装整个std :: map类。我将不胜感激任何建议。谢谢。
直观地看来,应该有一种简单的方法来设置自定义异常EngagedListException,ResRegestryException,而不包装整个std :: map类。
不应该有一个。类的功能定义合同。如果某个函数的文档说“此函数将在这种情况下抛出std :: out_of_bounds”,则该函数将执行此操作。
就是说,当您考虑可能不会使用map和vector的所有方法时,封装这些类应该会更加容易(因此请使用私有封装并只公开您在客户端代码中使用的方法)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句