【发布时间】:2011-01-26 11:13:27
【问题描述】:
我需要将 C++ 中的 int[] 数组从零填充到由变量定义的数字,但 ISO C++ 禁止变长数组... 如何轻松填充数组?我需要分配/释放内存吗?
int possibilities[SIZE];
unsigned int i = 0;
for (i = 0; i < SIZE; i++) {
possibilities[i] = i;
}
顺便说一句。如果您要问 - 是的,我需要完全标准的 int[] 数组,没有向量,没有地图等。
【问题讨论】:
-
为什么你不能使用
std::vector? -
我需要将数组传递给 next_permutation()... 因为我需要它尽可能简单,所以我不想为向量构建另一个自己的“排列”函数。 .
-
您知道您也可以将向量用作标准 C 数组吗?只需使用 int* array = &myvec[0];然后数组可用作标准数组,除非您将任何元素添加到基础向量中,否则将保持固定
-
@JohnB:我其实不知道。 :-)
-
@Radek,如果您在谈论
std::next_permutation,它不需要C 样式的数组,它可以与双向迭代器一起使用,向量将很好地提供(begin(),end())