c ++特殊变量名

时间:2010-08-19 02:09:00

标签: c++ visual-c++ variables

当我创建变量时,我只为它添加一个名称,但是我可以像这样创建变量的名称:

int var+1= 1;

所以基本上应该是:

int var1=1;

我知道我不能使用+号来做到这一点但是有办法吗?

<小时/> EDIT

int g=1;
string hello+g = "sdljfsdl"; // So hello+g will be hello1

因此,它就像将变量值混合为另一个变量值来获取新的变量名。

3 个答案:

答案 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"