C++ 向量计数函数C++;
我有一个向量C++ 向量计数函数C++;,c++,vector,stl,C++,Vector,Stl,我有一个向量 vector<int> vec; 但我一点都没法用。关于如何让count只存储素数有什么想法吗?std::count的文档中说: 返回[first,last]范围内比较等于val的元素数 所以你应该使用下面的方法来计算素数: int cnt = count(vec_prime_number.begin(), vec_prime_number.end(), 1); 作为。“理想情况下,我想使vec中有{5,7,13,17}//换句话说,只有素数” 您不需要计数,只需使
vector<int> vec;
但我一点都没法用。关于如何让count只存储素数有什么想法吗?std::count的文档中说: 返回[first,last]范围内比较等于val的元素数 所以你应该使用下面的方法来计算素数:
int cnt = count(vec_prime_number.begin(), vec_prime_number.end(), 1);
作为。“理想情况下,我想使vec
中有{5,7,13,17}//换句话说,只有素数”
您不需要计数,只需使用:
bool IsPrime (int i)
{
/*returns true, if i is Prime */
}
vec.erase(std::remove_if(vec.begin(), vec.end(), IsPrime), vec.end());
vec\u prime\u number
不是一个函数,你不应该在它后面加上()
。“但我不能让它任何一个都工作。”这是什么意思?你的计算机反叛并试图杀死你吗?我试过int cnt=count(vec.begin(),vec.end(),vec\u prime\u number)这仍然不起作用。count
查找精确的匹配项,它不会在向量中搜索匹配项。那么,计数与您尝试执行的操作有什么关系呢?只需编写一个循环,循环通过vec\u prime\u number
。如果元素为1,则将vec
的对应元素推到结果向量上。
int cnt = count(vec_prime_number.begin(), vec_prime_number.end(), 1);
bool IsPrime (int i)
{
/*returns true, if i is Prime */
}
vec.erase(std::remove_if(vec.begin(), vec.end(), IsPrime), vec.end());