在一个文件中管理字符串而不是多次写出字符串的最佳实践是什么?我的想法是创建一个简单的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")
};
这样,字符串只需写入一次即可,并且可以轻松地通过定义或从地图中获取。该地图可能能够在地图上进行迭代,但也许其他一些构造更有意义。
答案 0 :(得分:1)
您可以简单地使用constexpr
变量:
constexpr auto SENSOR1_NAME = "Sensor1 Name";
不需要宏,也不需要动态内存的昂贵开销。