下面这小小的一个函数,包含了模板的基本应用,学习标准库基本内容来提高对模板的认识。
#include <vector>
#include <iostream>
#include <functional>
#include <algorithm>
int main(int argc char** argv) {
std::vector<int> tmp_vac = {
3, 4, -6, 10, 2, -9
};
// 统计容器中小于0的数,当然可以自己简单的实现一个函数
int num = std::count_if(tmp_vac.begin(), tmp_vac.end(),
std::bind2nd(std::less<int>(),0));
std::cout << "There are " << num << " negative elements" << std::endl;
return 0;
}
// InputIterator 容器的迭代器,UnaryPredicate 需要一个参数的函数(仿函数)
template <class InputIterator, class UnaryPredicate>
// iterator_traits 迭代器萃取,迭代器需要定义5大类型
// difference_type 迭代器距离类型,可以看成 int 类型,但其实不是
typename iterator_traits<InputIterator>::diffe