STL与泛型编程 Week4 (Boolan) by Im4li
2017-09-07 本文已影响0人
Im4lish
1-算法的形式
低耦合的function template
2-迭代器的分类(catagory)
//五种iterator category
struct input_iterator_tag{};
struct output_iterator_tag{};
struct forward_iterator_tag : public input_iterator_tag{};
struct bidirectional_iterator_tag : public forward_iterator_tag{};
struct random_access_iterator_tag : public bidirectional_iterator_tag{};
五种iterator category
3-迭代器分类(catagory)对算法的影响
算法可以根据不同的迭代器提供特化版本,提高效率。
4-算法源代码剖析(11个例子)
5-仿函数/函数对象
6-存在多种Adapter
7-Binder2nd
8-not1
相当于在传入的内容前面加否定符号,此外C++还有一个not2来返回双目的函数适配器。
9-bind
从C++11开始bind可以替代binder1st、binder2nd、bind1st、bind2nd
bind可以绑定:
1、functions
2、function objects
3、member functions //_1(占位符)必须是某个object地址
4、data members //_1(占位符)必须是某个object地址
10-reverse_iterator
注意end指向的是最后一个元素的后一个。
11-inserter
重载=操作符,令insert_iterator时时跟随target。
12-ostream_iterator
13-istream_iterator
在创建istream_iterator对象时就会产生第一个输入。