管理字符串文字的最佳实践

时间:2018-10-01 10:30:25

标签: c++ string constants

在一个文件中管理字符串而不是多次写出字符串的最佳实践是什么?我的想法是创建一个简单的string_library.h文件,该文件在映射中包含所有字符串,并方便地定义以获取名称和ID。像这样:

#include <string>
#include <map>

#define SENSOR1_ID 0
#define SENSOR2_ID 1

#define SENSOR1_NAME string_library[SENSOR1_ID]
#define SENSOR2_NAME string_library[SENSOR2_ID]

std::map<unsigned int, const std::string> string_library{
std::make_pair(SENSOR1_ID, "Sensor1 Name"),
std::make_pair(SENSOR2_ID, "Sensor2 HI Name")
};

这样,字符串只需写入一次即可,并且可以轻松地通过定义或从地图中获取。该地图可能能够在地图上进行迭代,但也许其他一些构造更有意义。

1 个答案:

答案 0 :(得分:1)

您可以简单地使用constexpr变量:

constexpr auto SENSOR1_NAME = "Sensor1 Name";

不需要宏,也不需要动态内存的昂贵开销。