练习题目:





struct Programmer{
Programmer(const int id, const std::wstring name):
Id(id), Name(name){ } void Print() const
{
std::wcout<<L"["<<Id<<L"]: "<<Name<<std::endl;
} int Id;
std::wstring Name;
}; //2, 定义仿函数 //a, 使用ID升序排序
struct ProgrammerIdGreater : public std::binary_function< Programmer, Programmer, bool>{
bool operator() (const Programmer& p1, const Programmer& p2) const {
return (key1 <= key2) ? false : true;
}
}; //b, 使用Name来进行排序
struct ProgrammerNameComparer : public std::binary_function< Programmer, Programmer, bool>{
bool operator() (const Programmer& p1, const Programmer& p2) const {
return (p1.GetId() <= p2.GetId()) ? false : true;
}
}; void main()
{ //构建数组
Programmer vp[6] = {
Programmer("Andrei", 6),
Programmer("Stanley", 5),
Programmer("Plaught", 4),
Programmer("BillGates", 3),
Programmer("Fowler", 2),
Programmer("Meyes", 1)
};
//构建set
std::set<Programmer, ProgrammerIdGreater > dest(vp, vp+6); //遍历set
std::for_each( dest.begin(), dest.end(), std::mem_fun(&Programmer::Print) ); //将dest中的BillGates改为David
std::set<Programmer, ProgrammerIdGreater>::iterator it = dest.find(Programmer("BillGates", 3));
if(it != dest.end())
const_cast<Programmer&>(*it).SetName("David"); //遍历set
std::for_each( dest.begin(), dest.end(), std::mem_fun(&Programmer::Print) ); //新set2用名字排序
std::set<Programmer, ProgrammerNameComparer > dest2(dest, dest+6); //遍历set2
std::for_each( dest2.begin(), dest2.end(), std::mem_fun(&Programmer::Print) ); }

STL与泛型编程-练习2-GeekBand的更多相关文章

  1. [GeekBand] STL与泛型编程(1)

    在C++语法的学习过程中,我们已经对模板有了基本的了解.泛型编程就是以模板为工具的.泛化的编程思想.本篇文章介绍了一些在之前的文章中没有涉及到的一些模板知识.泛型编程知识和几种容器.关于模板的一些重复 ...

  2. [GeekBand] STL与泛型编程(2)

    本篇文章在上一篇文章的基础上进一步介绍一些常用的容器以及STL的一些深入知识. 一. Stack和Queue 栈和队列是非常常用的两种数据结构,由deque适配而来.关于数据结构的知识这里就不在介绍了 ...

  3. [GeekBand] STL与泛型编程(3)

    本篇文章主要介绍泛型算法中的变易.排序.数值算法. 一. 变易算法 所谓变易算法是指那些改变容器中的对象的操作. 1.1 copy组 template <class InputIterator, ...

  4. STL与泛型编程-第一周笔记-Geekband

    1, 模板观念与函数模板 简单模板: template< typename T > T Function( T a, T b) {- } 类模板: template struct Obje ...

  5. STL与泛型编程(第一周)

    part 1 C++模版简介 一,模版概观 1.模板 (Templates)是C++的一种特性,允许函数或类(对象)通过泛型(generic types)的形式表现或运行. 模板可以使得函数或类在对应 ...

  6. STL与泛型编程-学习2-GeekBand

    9, 容器 Deque 双向队列 和vector类似, 新增加: push_front 在头部插入一个元素 pop_front 在头部弹出一个元素 Deque和vector内存管理不同: 大块分配内存 ...

  7. STL与泛型编程第一周作业

    /* 题目: 给定一个 vector:v1 = [0, 0, 30, 20, 0, 0, 0, 0, 10, 0],希望通过not_equal_to 算法找到到不为零的元素,并复制到另一个 vecto ...

  8. C++ STL泛型编程——在ACM中的运用

    学习过C++的朋友们应该对STL和泛型编程这两个名词不会陌生.两者之间的关系不言而喻,泛型编程的思想促使了STL的诞生,而STL则很好地体现了泛型编程这种思想.这次想简单说一下STL在ACM中的一些应 ...

  9. 泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系

    2013-08-11 10:46:39 介绍STL模板的书,有两本比较经典: 一本是<Generic Programming and the STL>,中文翻译为<泛型编程与STL& ...

随机推荐

  1. 两个table合并

    1.两个一样的table合并用Merge函数即可合并(但要求table要有主键id) DataTable1.Merge(DataTable2); 2.没写完,以后继续补充(只有经过笔者验证,能用的才会 ...

  2. vue v-show指令

    demo: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  3. vagrant virtualbox 导入已导出的包和导出笔记

    导入 安装好virtualbox,vagrant软件之后, 将预先打包的 box 镜像导入到 vagrant 中 命令格式 vagrant box add <name> <boxpa ...

  4. 校园商铺-4店铺注册功能模块-4Dto之ShopExecution的实现

    1. DTO:添加店铺的返回类型 问题:为什么不直接用实体类Shop呢? 原因:在操作Shop的时候,必然会有一个状态.添加店铺,添加成功,还是添加失败? 如果添加失败,失败是一个什么状态,这些都是要 ...

  5. CSS——元素的显示与隐藏

    元素的显示与隐藏 在CSS中有三个显示和隐藏的单词比较常见,我们要区分开,他们分别是 display visibility 和 overflow. 他们的主要目的是让一个元素在页面中消失,但是不在文档 ...

  6. x-杂项-maven-repository-lombok-intro:使用PROJECT LOMBOK减少BOILERPLATE代码

    ylbtech-杂项-maven-repository-lombok-intro:使用PROJECT LOMBOK减少BOILERPLATE代码 1.返回顶部 1. REDUCING BOILERPL ...

  7. System.Web.Mvc.Filters.IAuthenticationFilter.cs

    ylbtech-System.Web.Mvc.Filters.IAuthenticationFilter.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Cultu ...

  8. VI/VIM 无法使用系统剪贴板(clipboard)

    来自: http://www.bubuko.com/infodetail-469867.html vim 系统剪贴板 "+y 复制到系统剪切板 "+p 把系统粘贴板里的内容粘贴到v ...

  9. Eclipse添加git插件及操作

    注册账号新建仓库 在Github已经注册成功自己的账号 新建一个仓库 创建成功后记住url: 安装Git插件 首先像安装Pydev一样 点击help的Install New Software 点击Ad ...

  10. sql 字符串连接

    const string FMCG_BASH = "清除重复商品"; var sqls = new List<string>(); //// Fmcg sqls.},R ...