如何在C++中"组合"变量名?

its*_*iao -2 c++

鉴于这样的假设情况:

int val1, val2, val3, choice;
while (expression) {
    cin >> choice;
    if (choice == 1) {
        val1 += expression;
    } else if (choice == 2) {
        val2 += expression;
    } else if (choice == 3) {
        val3 += expression;
    } else {
        expressions..;
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将变量名称视为字符串,以便能够"组合"它们?这可能是有用的,例如在上面的例子中,甚至更好的在for循环中,将计数器值添加到变量名称,以便在每个循环中调用不同的变量.

有了这样的功能,我上面的例子会变成:

int val1, val2, val3, choice;
while (expression) {
    cin >> choice;
    if (choice == 1 || choice == 2 || choice == 3) {
        ['val' + choice] += expression;
    } else {
        expressions..;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不认为我选择了最好的例子来表示这样一个功能的好处,无论如何我以前用PHP和SQL做了很多,例如使用循环中的计数器的值来每次选择一个不同的数组的项,并在新的SQL语句中声明它.

有谁知道在C++中是否可以这样的东西?
如果事情不明确,请告诉我.
谢谢 :)

kir*_*sos 7

尝试一个数组:

int vals[3] = {0}, choice;
while (expression) {
    cin >> choice;
    if (choice >= 1 && choice <= 3) {
        // arrays are indexed starting at 0
        vals[choice-1] += expression;
    } else {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)