我在c ++中使用数组创建一个素数生成器,以便在找到它们时存储素数,然后使用它们来检查以后的电位。当我的程序继续时,有没有办法“增长”我的阵列?
答案 0 :(得分:6)
见std:vector。 http://new.cplusplus.com/reference/stl/vector/
答案 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。