C++ 元素计数 count()

algostuff.hpp

#ifndef ALGOSTUFF_HPP
#define ALGOSTUFF_HPP

#include <array>
#include <vector>
#include <deque>
#include <list>

#include <forward_list>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>

#include <algorithm>
#include <iterator>
#include <functional>
#include <numeric>
#include <iostream>
#include <string>

//集合中添加元素
template <typename T>
inline void INSERT_ELEMENTS(T& coll, int first, int last)
{
    for (int i = first; i <= last; ++i)
    {
        coll.insert(coll.end(), i);
    }
}

//输出集合中的元素
template <typename T>
inline void PRINT_ELEMENTS(const T& coll, const std::string & optcstr = "")
{
    std::cout << optcstr;
    for (auto elem : coll)
    {
        std::cout << elem << "  ";
    }
    std::cout << std::endl;
}

//输出Map中的元素
template<typename T>
inline void PRINT_MAPPED_ELEMENTS(const T& coll, const std::string& optcstr = "")
{
    std::cout << optcstr;
    for (auto elem : coll)
    {
        std::cout << "[" << elem.first << "," << elem.second << "]  ";
    }
    std::cout << std::endl;
}
#endif // !ALGOSTUFF_HPP

testCount.cpp

#include "algostuff.hpp"

using namespace std;

int main()
{
    vector<int> vec1;
    int num1 = 0;
    INSERT_ELEMENTS(vec1, 1, 9);
    PRINT_ELEMENTS(vec1,"vec1:    ");

    num1 = count(vec1.cbegin(),vec1.cend(),4);
    cout << "number of elements equal to 4:   " << num1 << endl;
    num1 = count_if(vec1.cbegin(),vec1.cend(),
        [](int elem1) {
        return elem1 % 2 == 0;
    });

    cout << "number of elements with even value:   " << num1 << endl;
    num1 = count_if(vec1.cbegin(),vec1.cend(),
        [](int elem1) {
        return elem1 > 4;
    });

    cout << "number of elements greater than 4:   " << num1 << endl;

    system("pause");
    return 0;
}

vec1: 1 2 3 4 5 6 7 8 9
number of elements equal to 4: 1
number of elements with even value: 4
number of elements greater than 4: 5
请按任意键继续. . .

代码参考:C++标准库(第2版)

原文地址:https://www.cnblogs.com/herd/p/12141776.html

时间: 2024-10-22 03:53:35

C++ 元素计数 count()的相关文章

STL_算法_元素计数(count、count_if)

C++ Primer 学习中... 简单记录下我的学习过程 (代码为主) count . count_if #include<iostream> #include<cstdio> #include<cstring> #include<vector> #include<set> #include<algorithm> using namespace std; /*********************** count count_if

数据流基本问题--独立元素计数(二)

该篇文章中问题的定义和上一篇文章<数据流基本问题--独立元素计数(一)>点击打开链接中一样.不过该篇文章里能给出-近似的算法. 一.算法的基本思想 该篇文章中的算法是上一篇文章中算法的改进.这里不再记录流中元素zeros(h(j))的最大值,而是将满足所有的元素放入到B中.如果流中有d个独立元素,那么平均会有个元素满足.所以应该是d的一个比较好的估计(|B|指的是B中元素总数目). 二.算法的具体过程 算法的伪代码如下图所示.将一个元素j添加到B中时,是以g(j)和zeros(h(j))组成一

PHP切割字符用到的explode 以及计数count

在thinkphp中同样可以用 explode来进行字符的切割工作,比如 $jihe='1,2,3,4'; 在使用explode之后,可以获得一个数组: $array=explode(',',$jihe); 输出内容如下: Array ( [0] => 1 [1] => 2 [2] =>3 [3] => 4 ) 此时可以用计数函数来计算一共分割出来几个数 $count=count($array); 结果为:4 另外发现,如果一开始 $jihe 的值为空,经过explode 之后,再

序列计数(count)

Portal -->broken qwq Description ?? ?给你一个长度为\(n\)的序列,序列中的每个数都是不超过\(m\)的正整数,求满足以下两个条件的序列数量: 1.序列中至少有一个质数 2.序列中\(n\)个数之和为\(p\)的倍数 ?? ?数据范围:\(1<=n<=10^9,1<=m<=2*10^7,1<=p<=100\) Solution ?? ?我的妈呀真实智力康复..为什么连最基础的矩乘优化都忘了== ?? ?记\(f[i][j]\)

Python数据类型-list

Python-List详解 列表(list)作为python的一种数据类型,常用它进行一些复合数据的分组,list的形式是[value1,value2,value3,value4....valuen],list的每项数据不需要是同一类型,可以是任意的python数据类型. >>> l1 = [1,2,3,'name',[1,2,3],{'age':18},(1,2,3)] >>> l1 [1, 2, 3, 'name', [1, 2, 3], {'age': 18},

Redis基础--API

Redis:Remote Dictionary Server 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件.C语言实现,单线程 Redis特性: 1.速度快:官方声明可以达到10W OPS 2.持久化:aof.rdb 3.支持多种数据结构:String.Hash Table.LinkedList.Set.Sort Set.BitMaps位图.HyperLogLog超小内存唯一值计数.GEO(地理定位) 4.支持多种语言:Java.PHP.Python.

LinkedBlockingQueue与ArrayBlockingQueue

阻塞队列与普通的队列(LinkedList/ArrayList)相比,支持在向队列中添加元素时,队列的长度已满阻塞当前添加线程,直到队列未满或者等待超时:从队列中获取元素时,队列中元素为空 ,会将获取元素的线程阻塞,直到队列中存在元素 或者等待超时. 在JUC包中常用的阻塞队列包含ArrayBlockingQueue/LinkedBlockingQueue/LinkedBlockingDeque等,从结构来看都继承了AbstractQueue实现了BlockingQueue接口(LinkedBl

PAT乙级—1024. 科学计数法 (20)-native

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出. 现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留. 输入格式: 每个输入包含1个测试用例,即一个以科学计数法表示的实数A.该数字的存储长度不超过9999字节,且其指数的绝对值不超过9999. 输出格式: 对每个测

使有序序列中每个元素最多出现2次的几种算法实现

问题描述(来源:leetcode--Remove Duplicates from Sorted Array II) 对于一个给定的已排序序列,要求实现一个算法:使序列中同一元素出现的次数不超过2次,对超过2次的同一元素直接删除,例如: 输入:给定序列A={1,1,1,2,2,3} 输出:要求返回length =5,A变为{1,1,2,2,3} 一.实现1 1.方式:该实现使用计数count,比较直观,而较容易想到,且扩展性较好,如果想将条件改为:最多出现n次,只需将条件count!=2改为cou