c++ 适配器

#include <bits/stdc++.h>
using namespace std;
const int MAX = 1e5+10;
vector<int> filter(const vector<int> &vec,int val,less<int> &lt) {
    vector<int> nvec;
    vector<int> :: const_iterator iter=vec.begin();
    while((iter=find_if(iter,vec.end(),bind2nd(less<int>(),val)))!=vec.end()) {
        nvec.push_back(*iter);
        iter++;
    }
    return nvec;
}
template<typename InputIterator ,typename OutputIterator,typename ElemType,typename Comp>
OutputIterator filter(InputIterator first,InputIterator last,OutputIterator at,const ElemType val,Comp pre) {
    while((first=find_if(first,last,bind2nd(pre,val)))!=last) {
        cout<<*first<<endl;
        *at++=*first++;
    }
    return at;
}
template<typename InputIterator,typename OutputIterator,typename ElemType>
OutputIterator sub_vec(InputIterator first,InputIterator last,ElemType val,OutputIterator at) {
    InputIterator first1=first,last1=last;
    for(;first!=last;first++) {
        *at++=*first++;
    }
    sort(first1,last1);
    first=find_if(first1,last1,bind2nd(less<int>(),val));
    at->erase(first,last1);
    return at;
}
priority_queue <int,vector<int>,greater<int> > q;

int main() {
    const int elem_size=5;
    int ia[elem_size]={1,3,4,56,7};
    vector<int> res(ia,ia+elem_size);
    vector<int> ans;
    filter(res.begin(),res.end(),back_inserter(ans),20,greater<int>());
    for(int i=0;i<ans.size();i++) {
        printf("%d\n",ans[i]);
    }
}

时间: 2024-11-05 21:42:25

c++ 适配器的相关文章

Android——ListView布局+适配器(三)

Android--ListView布局+适配器(三) package com.example.administrator.newstop; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import andro

Android——ListView多布局+适配器(二)

Android--ListView多布局+适配器(二) <span style="font-size:18px;">package com.example.administrator.newstop.entity; /** * Created by Administrator on 2016/8/4. */ public class News { private String title; private String pubDate; private int img; p

设计模式之Adapter(适配器)(转)

定义: 将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 为何使用? 我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口. 怎么办? 使用Adapter,在这两种接口之间创建一个混合接口(混血儿). 如何使用? 实现Adapter方式,其实"think in Java"的"类再生"一节中已经提到,有两

JAVA设计模式(DESIGN PATTERNS IN JAVA)读书摘要 第1部分接口型模式——第3章 适配器(Adapter)模式

客户端代码提供接口来写具体实现类时,要利用已经实现接口功能的现有类,但是接口的方法名和现有类的方法名不一致,则需要使用适配器模式. 接口适配 如图所示, RequiredInterface接口声明了Client类所要调用的requiredMethod()方法,ExistingClass的usefulMethod()提供了此方法的具体实现,但是这两个方法的名字不同,这要对ExistingClass进行适配.适配类NewClass继承ExistingClass类,实现了RequiredInterfa

使用stm32开发 USB_CAN 适配器测试

USB_CAN 适配器测试例程 采用CDC透传模式 一.简介 CAN总线无处不在,在设计开发中,到处需要用到CAN总线调试工具,本工具可以作为CAN的基础测试工具,用于监听CAN总线,或测试CAN数据收发.测试时,可以用两个板子,对接起来测试.即可实现如下介绍的功能. 二.接线图示意       三.开发测试环境 兼容系统:XP.WIN7 测试系统:XP 32bit(已验证) 开发工具:MDK 4.54 MCU型号:STM32F107VC(3.5版本固件库) 测试软件:stc-isp-15xx-

自定义ListView适配器

继承BaseAdapter类 覆盖以下4个方法: @Override public int getCount() { return users.size(); } @Override public Object getItem(int position) { return users.get(position); } @Override public long getItemId(int position) { return ((User)getItem(position)).getId();

C#之数据适配器:DataAdapter对象

在ADO.NET中,能够用于执行命令操作的不但有有Command对象,还有DataAdapter对象,DataAdapter对象执行查询的返回数据将存储在DataSet对象中. DataAdapter对象概述 DataAdapter对象是DataSet和数据之间的桥梁,可以建立并初始化数据表对数据源执行SQL指令,与DataSet对象结合,提供DataSet对象存储数据,可视为DataSet对象的操作核心. 在使用DataAdapter对象时,只需要设置表示SQL命令和数据库连接的两个参数,就可

适配器(GOF23)

---恢复内容开始--- 摘要:由于应用环境的变化,需要将现存的对象放到新的环境中去,但新环境的接口是现存对象不满足的. 意图:将原本接口不兼容的类通过转换,使得它们能够一起工作,复用现有的类 adapter和adaptee的关系 适配器一般分为:类适配器和组合适(对象)配器 推荐使用组合适配器,因为类适配器可能带来高的耦合 前期尽可能的面向接口去编程,后期可以更好的解耦

springmvc 前段控制器 处理器映射器 处理器适配器 视图视图解析器 配置

1. 前段控制器 新建项目在web.xml中配置前段控制器 <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</pa

Springmvc系列02 简单url处理器映射和另一个适配器

1.springmvc配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframewo