gpt4 book ai didi

C++ - 错误列表的数据结构

转载 作者:行者123 更新时间:2023-11-30 03:47:36 28 4
gpt4 key购买 nike

我有一个错误列表,如下所示:

"ERROR CODE" "POSITION" "Error description"
"000" "1" "No error"
"001" "2" "DB Connection error"
"002" "2" "Error in processing"

还有更多的错误。

现在我真正需要做的是以某种方式实现此错误(错误永远不会改变,它们始终相同),以便使用该库的开发人员可以通过给定的 ERROR_CODE 轻松识别错误描述。

例如:char* getError(ERROR_CODE);并返回与 ERROR_CODE 关联的错误描述字符串。

我想到了使用 ENUM。但我似乎无法让它正常工作。

最佳答案

我认为标准模板库的类模板unordered_mapmap会适合你的目的。

无序映射是关联容器,存储由键值和映射值组合而成的元素,键值一般用于唯一标识元素,而映射值是与该键相关联的内容的对象.无序映射中的元素未根据其键或映射值按任何特定顺序排序。

映射是关联容器,存储由键值和映射值组合而成的元素,键值通常用于对元素进行排序和唯一标识,而映射值存储与该键关联的内容。在内部,映射中的元素始终按其键排序。

无序 map 容器比 map 容器更快地通过键访问单个元素,尽管它们通常在通过其元素的子集进行范围迭代时效率较低。

将错误代码存储为键,并将包含位置和错误描述的结构(如下所示)存储为映射值。

struct error_info{
int position;
char * description;
};

编辑:

这是代码,

#include <iostream>
#include <map>
using namespace std;

struct error_info{
int position;
char * description;
};

struct error_info get_error(map<int, struct error_info> error_map, int error_code){
return error_map[error_code];
}

int main(){
map<int, struct error_info> error_map;

error_map[000] = {1, (char *)"no error"};
error_map[001] = {2, (char *)"DB connection error"};
error_map[003] = {3, (char *)"error in processing"};

struct error_info info = get_error(error_map, 001);
cout << info.position << " " << info.description << endl;
return 0;
}

Live example

希望对您有所帮助。

关于C++ - 错误列表的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33615043/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com