当前位置: 首页 > news >正文

如何做自己的淘宝优惠券网站网站内容关键词

如何做自己的淘宝优惠券网站,网站内容关键词,营销型网站设计官网,免费的网页域名C之STL的algorithm#xff08;8#xff09;之适配器#xff08;bind等#xff09;整理 注#xff1a;整理一些突然学到的C知识#xff0c;随时mark一下 例如#xff1a;忘记的关键字用法#xff0c;新关键字#xff0c;新数据结构 C 的适配器整理 C之STL的algorithm之STL的algorithm8之适配器bind等整理 注整理一些突然学到的C知识随时mark一下 例如忘记的关键字用法新关键字新数据结构 C 的适配器整理 C之STL的algorithm8之适配器bind等整理一、 集合相关操作算法1、函数对象适配器1.1 利用bind2nd进行绑定1.2 继承public binary_function参数1 类型,参数2类型,返回值类型 2. 取反适配器2.1 一元取反2.2 二元取反 3. 函数指针适配器3.1 ptr_fun将普通函数指针适配成函数对象 4. 成员函数适配器4.1 如果存放的是对象实体 mem_fun_ref4.2 如果存放的是对象指针 mem_fun 总结 提示本文为 C 适配器的写法和举例 一、 集合相关操作算法 C中的适配器是一种设计模式它允许将某个类的接口转换为客户端所期望的另一种接口从而使得原本不兼容的接口能够协同工作。在C标准库中适配器模式被广泛应用在函数对象和迭代器等组件上。 下面每一种适配器模式给出简要的描述和代码示例。 1、函数对象适配器 函数对象适配器用于将一个二元函数对象即带有两个参数的函数对象适配为只接受一个参数的函数对象。 1.1 利用bind2nd进行绑定 bind2nd用于将一个二元函数对象的第二个参数绑定为某个固定值生成一个新的一元函数对象。 cpp复制 #include functional #include iostream int main() { std::plusint plusObj; std::binder2ndstd::plusint binder(plusObj, std::placeholders::_2);binder(5); // 这其实是不合法的因为bind2nd返回的是一个一元函数对象需要提供一个参数 // 正确的使用方式是与其他函数适配器结合使用例如与std::bind auto bound_func std::bind(binder, std::placeholders::_1); std::cout bound_func(3) std::endl; // 输出8因为相当于plusObj(3, 5) return 0;}1.2 继承public binary_function参数1 类型,参数2类型,返回值类型 binary_function是一个模板基类提供了first_argument_type、second_argument_type和result_type三个嵌套类型用于描述二元函数对象的参数类型和返回值类型。 #include functional struct MyBinaryFunction : public std::binary_functionint, int, int { int operator()(int a, int b) const { return a b; }}; int main() { MyBinaryFunction myFunc;std::cout myFunc(3, 4) std::endl; // 输出7 return 0;}2. 取反适配器 取反适配器用于将一个函数对象的返回值取反。 2.1 一元取反 not1not1用于生成一个返回值为原函数对象返回值逻辑非的一元函数对象。 #include functional #include iostream bool is_positive(int x) { return x 0;} int main() { std::functionbool(int) func is_positive; std::not1std::functionbool(int) notFunc(func); std::cout notFunc(-3) std::endl; // 输出1true因为-3不是正数 return 0;}2.2 二元取反 not2not2用于生成一个返回值为原二元函数对象返回值逻辑非的一元函数对象。 #include functional#include iostreambool compare(int a, int b) { return a b;}int main() { std::functionbool(int, int) func compare; std::not2std::functionbool(int, int) notFunc(func); std::cout notFunc(5, 3) std::endl; // 输出1true因为5不小于3 return 0;}3. 函数指针适配器 函数指针适配器用于将普通函数指针适配为函数对象。 3.1 ptr_fun将普通函数指针适配成函数对象 #include functional #include iostream int add(int a, int b) { return a b;} int main() { std::pointer_to_binary_functionint, int, int funcPtrAdapter(add); std::cout funcPtrAdapter(3, 4) std::endl; // 输出7 return 0;} 4. 成员函数适配器 成员函数适配器用于将类的成员函数适配为函数对象。 4.1 如果存放的是对象实体 mem_fun_ref #include iostream #include functional #include vector #include algorithm struct MyClass { int value; MyClass(int v) : value(v) {} int get_value() const { return value; }};int main() { std::vectorMyClass vec{MyClass(3), MyClass(5), MyClass(1)}; std::sort(vec.begin(), vec.end(), std::mem_fun_ref(MyClass::get_value));for (const auto obj : vec) { std::cout obj.value ; } std::cout std::endl; // 输出 1 3 5 return 0;} 4.2 如果存放的是对象指针 mem_fun #include iostream #include functional #include vector #include algorithm struct MyClass { int value; MyClass(int v) : value(v) {} int get_value() const { return value; }};int main() { std::vectorMyClass* vec{new MyClass(3), new MyClass(5), new MyClass(1)}; std::sort(vec.begin(), vec.end(), std::mem_fun(MyClass::get_value)); for (MyClass* obj : vec) { std::cout obj-value ; } std::cout std::endl; // 输出 1 3 5 // 释放内存 for (MyClass* obj : vec) { delete obj; } return 0;}请注意由于std::mem_fun、std::mem_fun_ref、std::ptr_fun、std::bind2nd、std::binder2nd等函数适配器在C11之后逐渐被认为是不推荐的并在C17中被移除因此在实际编程中我们更推荐使用std::bind、std::function以及lambda表达式来创建函数对象和适配器。上面的代码示例主要是为了展示这些适配器的使用方式并不推荐在实际项目中使用。 总结
http://www.w-s-a.com/news/81431/

相关文章:

  • 恒通建设集团有限公司网站企业网站百度指数多少算竞争大
  • 雅虎网站收录提交入口如何使用wordpress搭建网站
  • 微商城网站建设怎么样发稿是什么意思
  • dz建站与wordpress群晖做网站服务器速度快吗
  • 做手机网站的公司网站建设 app开发 图片
  • 网站开发技术背景介绍wordpress数据库重置密码
  • 开发建设网站的实施过程是一个logo设计品牌
  • 做360pc网站排名首页工程造价信息网官网首页
  • 产品销售网站模块如何设计大数据和网站开发
  • 现在帮别人做网站赚钱不济南做网站建设公司
  • 嘉兴网站建设哪家好最近三天的国际新闻大事
  • 安丘网站建设制作做网站口碑比较好的大公司
  • 成都专业做网站公司哪家好优化大师下载安装免费
  • 防蚊手环移动网站建设广东深圳有几个区
  • 网站建设找哪些平台宜兴网站开发
  • 免费网站应用软件wordpress添加动态图标
  • 中小企业网站建设客户需求调查问卷昆明网站建设一条龙
  • 网站内容的特点wordpress 移动端网页
  • 专门网站建设培训网站系统建设
  • 自己设计手机的网站wordpress主题加密教程
  • 北京网站建设公司飞沐卖水果网站建设的策划书
  • 北京免费自己制作网站短视频宣传片制作
  • 怎样进入谷歌网站电子商务网站建设软件选择
  • 建个普通网站多少钱设计师培训多少
  • 建设校园网站的意义视频链接提取下载
  • 天津电子商务网站wordpress安装图片
  • 青岛房产网站东莞网络营销外包公司
  • 网站建设中的页数网上工伤做实网站
  • 给公司做网站这个工作怎么样wordpress不支持中文标签
  • 湖南网站推广优化cc域名做门户网站