我目前正在开发一个随机生成物品(例如武器、盔甲等)的程序,我想制作一个全局常量向量,其中包含所有可以赋予物品的名称。我想在我的所有其他类都可以使用的头文件中拥有这个 2D 向量(但不可修改),所以我需要在声明时对其进行初始化。
我以前使用过以下内容:
static const std::string v[] =
{
"1.0", "1.1", "1.2", "null"
};
const std::vector<std::string> versions( v, v+sizeof( v)/sizeof( v[0]));
这适用于一维向量,但是我想使用二维向量来存储项目名称。
我尝试过使用以下内容,但这意味着我没有成员函数(例如 size()):
static const std::string g_wn_a[] = { "Spear", "Lance", "Jouster" };
static const std::string g_wn_b[] = { "Sword", "Broadsword", "Sabre", "Katana" };
const std::string* g_weapon_names[] = { g_wn_a, g_wn_b };
我也不想使用类来存储所有名称,因为我觉得每次我想使用它们时都创建变量来存储所有名称是低效的。
有谁知道我可以如何解决我的问题?