在C++的学习过程中经常会提到适配器的概念,简单记录自己的理解:
1.适配器的意思就是将某些已经存在的东西进行限制或者组合变成一个新的东西,这个新的东西体现一些新的特性,但底层都是由一些已经存在的东西实现的。
2.我看到的C++中有容器适配器,迭代器适配器和函数适配器。
3.容器适配器就是stack和queue和priority_queue。有些时候我们直接将这几个归纳为容器的一种。但是实际上他们是容器适配器,就比如栈的前进后出的特性,我们完全自己利用vector容器写出来。
同样在C++中stack和queue的底层默认是通过deque容器来实现的,priority_queue底层默认是通过vector容器来实现的。并且允许我们更换其他符合要求的容器作为底层实现。
所以容器适配器在我看来只是一种思想,概念而已,真正使用这些容器适配器的时候完全可以将其作为容器一样使用。
4.迭代器适配器。同上面的容器迭代器的思想用法一样,至于我们平时使用的迭代器中哪些是基础迭代器哪些是迭代器适配器,想要了解的可以自行查找资料,但大多数情况下我们只要知道有这个概念就行了,真正使用过程中并不需要分得这么清楚。
5.函数适配器:
先看下面一个例子,find_count是标准库中的一个算法,用来找出容器中满足条件的元素的个数。如找出容器vec中大于x的数的个数。
使用lambda表达式写法:
原文:https://www.cnblogs.com/maycpou/p/14647203.html