当我的程序继续时,有没有办法“增长”我的阵列?

时间:2011-12-04 06:20:43

标签: c++ types primes

我在c ++中使用数组创建一个素数生成器,以便在找到它们时存储素数,然后使用它们来检查以后的电位。当我的程序继续时,有没有办法“增长”我的阵列?

7 个答案:

答案 0 :(得分:6)

答案 1 :(得分:2)

我会使用std:vector这样的东西:

vector<int> primes;

然后你可以使用:

为它添加素数
primes.push_back(2);

并使用以下方法从矢量中检索值:

primes[0];
祝你好运!

答案 2 :(得分:1)

听起来你需要一个矢量来存储素数。

答案 3 :(得分:1)

您可以使用std::vector模板,并根据prime counting function的上限使用reserve方法。

答案 4 :(得分:0)

我认为你最好的选择可能是std :: list;当一个向量需要在超出其保留空间时重新分配以前存储的项目,这不会发生在列表中。

答案 5 :(得分:0)

出现这种需求的常见情况还需要有效的查找操作。我的经验是去std::map,这使得生活比这里的矢量容易得多。

答案 6 :(得分:0)

如果您有任何最初已知的限制,您可以使用这个简单的公式计算所需数组的长度:

N为限制,LENGTH是数组所需的长度,所以

LENGTH = N / log(N)

其中log(N)N

的自然对数

有关详细信息,请参阅:Prime number distribution theorem