타입재정의
typedef int size_t;
size_t a; // int a
콜백 함수이다. - > count_if (반복자, 반복자, 함수주소)
함수 안에서 또 다른 함수를 불러온다.
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
template <typename T>
bool is_even(const T& num){
return (num % 2) == 0;
}
bool is_blank(char c){ // 공백을구하는함수.
if( c==' ')
return true;
else
return false;
}
void main(){
char *s = "I go to the school";
vector<int> vec;
for(int i=0; i<10; i++)
vec.push_back(i);
size_t n1 = count(s, s+strlen(s), 'o');
size_t n2 = count_if(vec.begin(), vec.end(), is_even<int>);
// 콜백 함수이다. 함수에서 함수를 호출하는것
// 또한 시작반복자와 호출하는 함수의 타입이 맞아야 한다.
size_t n3 = count_if(s, s+strlen(s), is_blank);
cout<<endl;
cout<<"값이'o'인요소갯수: " <<n1 <<endl;
cout<<"값이짝수인요소갯수: " <<n2 <<endl;
cout<<"값이공백인요소갯수: " <<n3 <<endl;
}