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)對(duì)算法的影響
算法可以根據(jù)不同的迭代器提供特化版本嗤疯,提高效率煮岁。
4-算法源代碼剖析(11個(gè)例子)
5-仿函數(shù)/函數(shù)對(duì)象
6-存在多種Adapter
7-Binder2nd
8-not1
相當(dāng)于在傳入的內(nèi)容前面加否定符號(hào),此外C++還有一個(gè)not2來返回雙目的函數(shù)適配器闯估。
9-bind
從C++11開始bind可以替代binder1st、binder2nd膀息、bind1st勉痴、bind2nd
bind可以綁定:
1、functions
2、function objects
3狡汉、member functions //_1(占位符)必須是某個(gè)object地址
4娄徊、data members //_1(占位符)必須是某個(gè)object地址
10-reverse_iterator
注意end指向的是最后一個(gè)元素的后一個(gè)。
11-inserter
重載=操作符盾戴,令insert_iterator時(shí)時(shí)跟隨target寄锐。
12-ostream_iterator
13-istream_iterator
在創(chuàng)建istream_iterator對(duì)象時(shí)就會(huì)產(chǎn)生第一個(gè)輸入。