C ++带变量的基本问题 - 只有3行代码

时间:2014-10-26 21:56:24

标签: c++ variables

我正在研究我的新项目,我面临一个奇怪的问题。这个问题似乎有两个解决方案 - 第一个可以带我,比方说,约5分钟,第二个需要一些复制和粘贴,需要花费很多时间。

但是,我不确定第一种解决方案是否可行,主要是,它是如何实现的。

我甚至无法向Google简要描述我的问题,但我会尝试向您描述。

假设我有一个变量x 。然后我有另一个变量$ 9 $ (例如,它的名字是9)。当变量x 的值等于9时,我想要变量$ 9 $来改变它的值。代码:

int x = 9
char $ 9 $ = 0
$ x $ = 1
//这不正确。这只是我的想法。这条线应该做; char变量,其名称等于int x的值,将其值更改为1 ..

我无法使用如果(if(x == 9)$ 9 $ = 1;)或切换,因为int x实际上有600个可能的值因此,还有600个char $值的x $变量..(好吧,这就是第二个解决方案)。

我希望至少有人能理解我的问题,任何想法?非常感谢您的帮助。另外,我很抱歉我的初学者的英语,因为他是C ++的新手并且无法谷歌。 :D

1 个答案:

答案 0 :(得分:2)

听起来你想要某种键值存储。也就是说,您有一个运行时确定的密钥,并且您希望根据该密钥查找/更改某些值。 C ++中包含一些可以相对容易地完成此任务的选项。

因为您的密钥是范围相对受限的int,所以我们可以使用数组。我们还可以使用std::unordered_map(哈希表)或std::map(二叉树)。

所以...给出其中一个对象:

std::array<int, 600> data;
std::unordered_map<int, int> data;
std::map<int, int> data;

我们可以做到:

int x = 9;
data[x] = 1;