count_if()是比较符合条件的数量信息。
代码如下:
Count_if.h
#pragma once
#include <algorithm>
#include<map>
#include<iostream>
using namespace std;
void Count_if();
//学生记录结构体
struct stuRecord
{
struct stuInfo
{
char*name;
int year;
};
stuInfo m_stuInfo;
int id;
stuRecord(int m_id, char* m_name, int m_year) {
id = m_id;
m_stuInfo.name = m_name;
m_stuInfo.year = m_year;
}
};
//生成模板
typedef stuRecord::stuInfo stuRI;
inline bool serRange(pair<int, stuRI>s) {
//second是迭代器指向对应的值
if (s.second.year >= 18 && s.second.year <= 20) {
return true;
}
return false;
}
Main.cpp
#include "Count_if.h"
void main(){
Count_if();
}
```javascript
Count_if.cpp
- - -
#include "Count_if.h"
void Count_if() {
stuRecord stu1 = stuRecord(1, "张三", 23);
stuRecord stu2 = stuRecord(2, "李四", 19);
stuRecord stu3 = stuRecord(3, "刘五", 18);
stuRecord stu4 = stuRecord(4, "李六", 20);
stuRecord stu5 = stuRecord(5, "王七", 16);
map<int, stuRI> m;
m.insert(make_pair(stu1.id, stu1.m_stuInfo));
m.insert(make_pair(stu2.id, stu2.m_stuInfo));
m.insert(make_pair(stu3.id, stu3.m_stuInfo));
m.insert(make_pair(stu4.id, stu4.m_stuInfo));
m.insert(make_pair(stu5.id, stu5.m_stuInfo));
//count_if(首迭代器,未迭代器,搜索值(要比较的值的结果))
int num = count_if(m.begin(), m.end(), serRange);
cout << num << endl;
}
效果如下:
更多推荐
C++中count_if()的使用
发布评论