当我创建变量时,我只为它添加一个名称,但是我可以像这样创建变量的名称:
int var+1= 1;
所以基本上应该是:
int var1=1;
我知道我不能使用+号来做到这一点但是有办法吗?
<小时/> EDIT
int g=1;
string hello+g = "sdljfsdl"; // So hello+g will be hello1
因此,它就像将变量值混合为另一个变量值来获取新的变量名。
答案 0 :(得分:13)
您可以使用宏来执行此操作,但实际上您不需要动态变量名称。听起来这种问题可以用数组来解决:
int vars[5];
vars[0] = 3;
vars[1] = 4;
// etc.
答案 1 :(得分:6)
不太可能,但您可以在预处理器中使用标记粘贴:
#define PASTER(x, y) x ## y
#define EVALUATOR(x, y) PASTER(x, y)
int EVALUATOR(var, 1) = 1;
答案 2 :(得分:0)
您几乎肯定需要std::map
,或者,如果可用,unordered_map
。两者都允许你构建你喜欢的键,并设置/获取这些键的值,例如
std::map<string,int mymap;
string fixed = "fixed part";
string var = " 1"; //or construct this from a number
mymap[fixed+var] = 3; //fixed+var == "fixed part 1"