c++ - vector 计数函数 C++

标签 c++ vector stl

我有一个 vector

vector<int> vec;

它存储随机数 {5, 7, 8, 9, 13, 15, 17}

我有一个 vector ,如果前一个 vector 的数字是素数,则将其评估为 1 或 0

vector< int> vec_prime_number;

所以对于前一个它将是 {1, 1, 0, 0, 1, 0, 1}

我正在尝试使用计数函数来仅保存其中的素数。我在做这件事时遇到了一些问题。

理想情况下,我想让 vec 有 {5, 7, 13, 17}//也就是说,里面只有素数

我试过类似的东西

int cnt = count(vec.begin(), vec.end(), vec_prime_number())

但我无法让它正常工作。关于如何计数以仅存储质数的任何想法?

最佳答案

std::count 的文档说:

Returns the number of elements in the range [first,last) that compare equal to val.

所以你应该按照下面的方式使用一些东西来获得素数的数量:

int cnt = count(vec_prime_number.begin(), vec_prime_number.end(), 1);

作为you can see .

关于c++ - vector 计数函数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19106925/

相关文章:

c++ - vector 推回澄清

c++ - std::unordered_map::insert 的更简单形式?

c++ - 如何为不允许修改数据的 shared_ptrs 容器编写 getter

c++ - std 库中有什么函数可以对 vector 进行二进制搜索并找到元素?

c++ - 在 `std::equal` 和 `end()` 的情况下, `abcd` 是否取消引用 `abc`?

c++ - 按列而不是行存储矩阵

c++ - 分配结构列表的 vector

C++ - ClassA *pClassA = new ClassA 和 ClassA *pclassA = new ClassA() 有什么区别

c++ - eclipse c++ 构建错误 Undefined symbols for architecture x86_64 : ld: symbol(s) not found for architecture x86_64

java - 如何在 java me 中有效地连接两个 vector 的数据?