我正在实现一个类来处理我的应用程序的错误消息。这门课的主要要求是
将错误 id 存储到字符串映射(在编译期间)
0, "没有错误"
147, “无效输入”
. . .
2500,“未知错误”
一种方法
const std::string& getErrorString(int errorId)
将从映射中检索字符串
errorId 不连续,因为我要为模块分配范围。我正在考虑使用映射来存储映射,但这意味着我必须在运行时将错误字符串插入到映射中——我不确定这是否有效,因为所有错误都在编译过程中可用。
实现错误 ID 到字符串映射以实现高效检索和最佳运行时间的最佳方法是什么? 我没有动力。
最佳答案
程序启动的动态初始化阶段是进行此操作的理想场所:
std::map<int, std::string> const Errors {
{ 0, "No Error" },
{ 1, "Bad mojo" },
/* ... */
{ 2500, "Unknown error" },
};
std::string const & getErrorString(int errorId)
{
auto it = Errors.find(errorId);
return it != Errors.end() ? it->second : Errors.find(2500)->second;
}
关于c++ - 错误 Id 到错误字符串映射 - C++ 中的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12054626/