C++ Primer 泛型算法阅读有感
2004-08-28 18:04
316 查看
这个月做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(); }
};
?
比如,在泛型算法中函数指针和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第二次阅读学习笔记(第11章:泛型算法)
- C++ primer第二次阅读学习笔记(第11章:泛型算法)
- C++ Primer (第十章:泛型算法)
- 《C++ Primer》第10章:泛型算法 学习笔记总结
- C++ Primer 学习笔记:泛型算法入门 fill && back_inserter && copy && replace
- C++ Primer : 第十章 : 泛型算法 之 只读、写和排序算法
- 《C++ Primer》十一章泛型算法笔记(二)
- 第十一章 泛型算法 C++ PRIMER
- 泛型算法中c++ primer介绍的函数
- C++ Primer 学习笔记:泛型算法入门 特定容器算法
- 【C++ Primer 学习笔记】: 容器和算法之【泛型算法】
- c++ primer(第五版)笔记 第十章 泛型算法(1)
- C++ Primer 学习笔记:泛型算法入门 参数绑定bind
- 《C++ Primer》 第11章 泛型算法 [ 未完 ]
- C++ Primer复习和学习笔记 第十一章 泛型算法
- C++ Primer 学习笔记_45_STL实践与分析(19)--泛型算法的结构
- C++ Primer 11章泛型算法总结
- c++ primer第10章 - 泛型算法
- 《C++ Primer》十一章泛型算法笔记(一)
- c++primer阅读笔记之泛型算法