【发布时间】:2013-10-01 02:19:50
【问题描述】:
我有一个向量
vector<int> vec;
它存储随机数 {5, 7, 8, 9, 13, 15, 17}
我有一个向量,如果它们是否是素数,它会将前一个向量的数字评估为 1 或 0
vector< int> vec_prime_number;
所以对于前一个它将是 {1, 1, 0, 0, 1, 0, 1}
我正在尝试使用 count 函数来只保存质数。而且我在做这件事时遇到了一些问题。
理想情况下,我想让 vec 具有 {5, 7, 13, 17} //也就是说,里面只有素数
我尝试过类似的东西
int cnt = count(vec.begin(), vec.end(), vec_prime_number())
但我无法让它工作。关于如何计算仅存储素数的任何想法?
【问题讨论】:
-
vec_prime_number不是一个函数,你不应该在它后面加上()。 -
“但我无法让它工作。”这意味着什么 ?您的计算机是否反叛并试图杀死您?
-
我试过 int cnt = count(vec.begin(), vec.end(), vec_prime_number) 还是不行。
-
count寻找完全匹配,它不搜索匹配的向量。 -
那么计数与您尝试做的事情有什么关系呢?只需编写一个通过
vec_prime_number的循环。如果元素为1,则将vec的对应元素推到结果向量上。