C++ Primer 泛型算法阅读有感

原创 2004年08月28日 18:04:00

这个月做VC++界面又有些精进,经验值也有所提高,但对于GDI操作还是接触不多,抽点时间又看了十几页C++ Primer,模板的推演、泛型算法部分也是朦胧:主要是没实际应用过,但是不能说是白看了,但对于思维的延伸还是有点帮助。

比如,在泛型算法中函数指针和Inline函数之间的效率比较,对于温习一下inline函数还是不错的。

实际例子-实现字符串排序,这里使用stable_sort算法,同时要求按字符串长度进行排序,下面用less_than函数实现两字符串小于、等于操作:

bool less_than( const string & s1, const string & s2 )

{

    return s1.size() < s2.size();

}

然后将函数指针less_than作参数传递给stable_sort,实现排序操作。传递函数指针也同时舍弃了inline,要知道使用inline的函数会在编译时被展开,编译完成后inline函数中的代码直接被“嵌入”当前调用它的块语句中,程序运行时直接执行less_than函数中代码,而不是像调用一般函数时,首先寻找函数地址,然后调用其中代码。如何实现inline函数?最简单的是做一个函数对象(stable_sort可以接受函数指针和对象参数),注意到()操作符被重载,实现比较功能,同时也保留了inline特性

// 函数对象:小于操作被实现为operator()的一个实例

class LessThan {

public:

??? bool operator() { const string & s1, const string & s2 ) { return s1.size() < s2.size(); }

};

?

《C++ Primer》阅读感想

无疑的,《C++ Primer》是一本相当好的书,里面的内容相当丰富。 然而,或许是它太过于丰富了,作为primer,我始终认为它有所欠缺。 欠缺的,不是它的内容,而是它的知识框架。 我...
  • Van0512
  • Van0512
  • 2016-11-13 19:34:42
  • 411

C++ Primer笔记6_STL之泛型算法

1.泛型算法: 大多数算法定义在头文件algorithm中,标准库还在头文件numeric中定义了一组数值泛型算法 举例: find函数用于找出容器中一个特定的值,有三个参数 int val = 1...
  • scottly1
  • scottly1
  • 2014-06-06 12:25:56
  • 1334

C++学习笔记--泛型算法

标准库给容器定义了一些基本的操作,还定义了一组泛型算法,称它们为算法,是因为它们实现了一些经典算法的公共接口,如排序和搜索,称它们是泛型的,是因为它们可以用于不同类型的元素和多种容器类型,甚至包括内置...
  • du_qi
  • du_qi
  • 2016-08-15 11:49:00
  • 553

C++primer学习:泛型算法(1)

[1]大多数算法都定义在algorithm中,它们不依赖于容器的类型(迭代器作为参数);算法只运行在迭代器之上!!!//count是一个计算某元素给定范围出现次数的操作 vector vec{...
  • pp634077956
  • pp634077956
  • 2015-10-06 21:04:50
  • 184

C++ Primer 11章泛型算法总结

范型算法,可以在多种容器类型上操作,一般是通过迭代器向函数传递需要操作的元素。 #include #include 1、find()函数:查找 find(b,e,val)   在迭代器b,e标记的范...
  • fighting_coder
  • fighting_coder
  • 2016-04-21 10:57:43
  • 171

C++ Primer中文版读书笔记

(注意,Lm 表示第 m 行,L-n 表示倒数第 n 行)■导读 p23原文:template T func( T p1, T p2, int p3 ) // ( T p1, T p2, int p3...
  • jaminwm
  • jaminwm
  • 2007-12-25 20:04:00
  • 2509

《C++primer(第五版)》学习之路-第一章:开始

1.1 编写一个简单的C++程序 1.一个函数的定义包含四部分:返回类型,函数名,形参列表,函数体。 2.当return语句包括一个值时,此返回值的类型必须与函数的返回类型相容。 3.程序所处理...
  • libin1105
  • libin1105
  • 2015-08-31 15:06:27
  • 1815

c++ primer plus第五版读书笔记

第一章  c++简介: 1.c语言是基于过程的,自上向下的编程语言 先分析大的解决方向,逐渐细化。 c++是面向对象的OOP,自下而上的编程语言 先设计类,然后将他们串联起来 优点是:保护数据,代码重...
  • qingzai_
  • qingzai_
  • 2016-08-03 11:25:04
  • 991

C++ 泛型算法简介

主要一些常见应用于容器的函数。这些算法一般位于头文件algorithm和头文件numeric中...
  • zhangxiao93
  • zhangxiao93
  • 2016-02-28 22:13:20
  • 1095

C++ Primer中文版

  • 2012年04月16日 09:59
  • 31.78MB
  • 下载
收藏助手
不良信息举报
您举报文章:C++ Primer 泛型算法阅读有感
举报原因:
原因补充:

(最多只允许输入30个字)