找人做网站安全吗,电商网站设计风格和内容,网站建设需要什么流程,做课宝官方网站STL 适配器分为 函数对象适配器、迭代器适配器 和 容器适配器 3种#xff0c;分别完成对应的类型转换。 举例子容易#xff0c;比如电源插座#xff0c;3个头的插头插不进两个头的插座#xff0c;就需要一个适配器。 1、函数适配器#xff1a; 在stl程序里#xff0c;有的…STL 适配器分为 函数对象适配器、迭代器适配器 和 容器适配器 3种分别完成对应的类型转换。 举例子容易比如电源插座3个头的插头插不进两个头的插座就需要一个适配器。 1、函数适配器 在stl程序里有的算法需要一个一元函数作参数就可以用一个适配器把一个二元函数和一个数值绑在一起作为一个一元函数传给算法。例如find_if(coll.begin(), coll.end(), bind2nd(greaterint(), 42));这句话就是找coll中第一个大于42的元素。greaterint()其实就是号是一个2元函数bind2nd的两个参数要求一个是2元函数一个是数值结果是一个1元函数。bind2nd就是个函数适配器。 2、容器适配器 adapter原意是插座、适配器、接合器的意思。现在我需要一个栈结构我们可以用deque来实现只在一端进行元素插入和弹出另一端不动。这说明 deque可以用作一个栈结构但它又不能直接地严格地满足你的要求因为你不能防止别人在另一端乱动你的东西。你需要对它进行一些包装作一些限制使 之只能在一端进行插入和删除。也就是说你必须提供一个“插座”这个“插座”一端插在deque上另一端插在你的程序中你就可以使用栈结构了。而 stack就是这样的“插座”它连接了deque和你的程序。表面上看你使用的是stack实际上你是通过stack这个“插座”来使用 deque因为stack完全是用deque来实现的它并没有任何其他的东西它只是在deque上面作了一层包装相当于一个“插座”的功能。因 此stack、queue、priority_queue这样的类一般称为容器适配器它们只是基本容器类型 vector,dequeue,list的适配。 实际上这也适配器模式的基本思想将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。也就是说在一个类的接口上提供一个“插座”类使它变成你希望使用的接口。就是由基本的容器适配改造出来的那些容器其它没啥特殊的。比如stack因为我们可以把stack理解成只是对vector、deque 或list的访问加一点限制而已只能从头部访问所以没有必要把stack做成一个基本容器使用其它的基本容器再稍微封装改造一下就OK了所以 stack在STL中就只是一个“容器适配器”而不是一个基础容器。 3、迭代适配器后续接收转载于:https://www.cnblogs.com/tongdh/archive/2013/01/01/2841511.html