【发布时间】:2016-08-17 01:48:29
【问题描述】:
我想用一段代码创建 2^n 个变量,具有以下属性:
如果 n=1,变量应该命名 n0 n1
如果 n=2,变量应该命名 n00 n01 n10 n11
如果 n=3,变量应该命名 n000 n001 n010 ..
n 的最大值是有界且已知的,所以不用担心。 位和变量应该是按顺序排列的。
我正在考虑创建一个由 2^n 个元素组成的数组,然后逐个操作 2^n 位并附加到 n。这似乎是一个琐碎而冗长的解决方案。有没有更优雅的方式? C 或 C++ 适合我。
【问题讨论】:
-
n的最大值是多少??
-
它不是很清楚你在问什么。要“创建 2^n 个变量”,计算 x = 2^n 然后
std::vector<T> vect = std::vector<T>(x);向量中的变量存储在连续内存中 -
这不太有意义,你需要变量还是值?您需要具有特定值的变量吗?顺便说一句,你只是在这里数。
-
@JVApen
malloc仍然是在当前版本的 C 中使用的合适函数。责备 OP 进行双重标记,不要责怪响应的人选择了没有的标记您的个人喜好。 -
@zorro 变量纯粹是一个编译时概念。
n是编译时常量吗?否则你不能动态地创建变量。您可以动态创建对象,但它们不会有变量名。