C++ Count,Count_if,find,find_if

Count,Count_if,find,find_if

cout,count_if
count()和count_if()是全局算法,适用于array,vector,list,forward_list, deque

map,set,unordered_set/map由于是关联式容器,所有有自己的count()和count_if()函数

#include<list>
#include<algorithm>
using namespace std;

void main()
{
	using _STL_STRING_LIST_ = list < string > ;
	_STL_STRING_LIST_ m_list;
	m_list.push_back("GQ001");
	m_list.push_back("GQ002");
	m_list.push_back("GQ003");
	m_list.push_back("GQ009");
	m_list.push_back("GQ005");
	m_list.push_back("GQ006");
	m_list.push_back("GQ007");
	m_list.push_back("GQ009");
	m_list.push_back("GQ009");
	m_list.push_back("GQ010");
	m_list.push_back("GQ011");
	m_list.push_back("GQ012");
	string stemp("GQ009");


	int ret = count_if(m_list.begin(), m_list.end(), [stemp](string num)->bool{return num == stemp; });
	cout << ret << std::endl;

	//按值查询
	int nret = count(m_list.begin(), m_list.end(), stemp);
	cout << nret << endl;
	system("pause");
}

结果:
在这里插入图片描述
find,find_if:
find_if()
find()和find_if()是全局算法,适用于array,vector,list,forward_list, deque

map,set,unordered_set/map由于是关联式容器,所有有自己的find()和find_if()函数

#include<iostream>
#include<utility>
#include<algorithm>
using std::cout;
#include<list>
using std::list;
#include<string>
using std::string;
#include<map>
#include<functional>
#include<list>


void main()
{
	using _STL_STRING_LIST_ = list < string > ;
	_STL_STRING_LIST_ m_list;
	m_list.push_back("GQ001");
	m_list.push_back("GQ002");
	m_list.push_back("GQ003");
	m_list.push_back("GQ009");
	m_list.push_back("GQ005");
	m_list.push_back("GQ006");
	m_list.push_back("GQ007");
	m_list.push_back("GQ009");
	m_list.push_back("GQ009");
	m_list.push_back("GQ010");
	m_list.push_back("GQ011");
	m_list.push_back("GQ012");
	string stemp("GQ009");

	_STL_STRING_LIST_::iterator its = find_if(m_list.begin(), m_list.end(), [stemp](string num){ return num == stemp; });//返回查找到的第一个出现位置。//如果要使用对象就用这个
	if (its != m_list.end())
	{
		cout << *its << std::endl;
	}
	
	_STL_STRING_LIST_::iterator itsx = find(m_list.begin(), m_list.end(), "GQ011");//返回查找到的第一个出现位置。
	cout << *itsx << std::endl;

	system("pause");
}

结果:
在这里插入图片描述

注意:
在vc6下使用,加一个仿函数:

bool ChangeNumber(string strnum)
{

	if (strnum == stemp)
	{
		return true;
	}
	else
		return false;
}

stemp = "GQ007";
	//_STL_STRING_LIST_::iterator its = find_if(m_list.begin(), m_list.end(), [stemp](string num){ return num == stemp; });//返回查找到的第一个出现位置。//如果要使用对象就用这个
	_STL_STRING_LIST_::iterator its = find_if(m_list.begin(), m_list.end(), ChangeNumber);
	if (its != m_list.end())
	{
		cout << *its << std::endl;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发如雪-ty

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值