Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 向量计数函数C++;_C++_Vector_Stl - Fatal编程技术网

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());