имя специальной переменной c ++ - PullRequest
0 голосов
/ 19 августа 2010

Когда я создаю переменную, я просто добавляю имя для нее, но могу ли я создать имя переменной следующим образом:

int var+1= 1;

Так что в основном это должно быть:

int var1=1;

Я знаю, что не могу использовать знак +, чтобы сделать это, но есть ли способ сделать это? <ч /> EDIT

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

Так что это похоже на смешивание значения переменной с другим значением переменной, чтобы получить новое имя переменной.

Ответы [ 3 ]

13 голосов
/ 19 августа 2010

Вы можете сделать это с макросами, но вам действительно не нужны динамические имена переменных. Похоже, что такую ​​проблему можно решить с помощью массива:

int vars[5];

vars[0] = 3;
vars[1] = 4; 
// etc.
6 голосов
/ 19 августа 2010

Вряд ли это желательно, но вы можете использовать вставку токена в препроцессоре:

#define PASTER(x, y) x ## y
#define EVALUATOR(x, y) PASTER(x, y)

int EVALUATOR(var, 1) = 1;
0 голосов
/ 19 августа 2010

вам почти наверняка понадобится 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...