体育资讯网

您现在的位置是:首页 > 分类10 > 正文

分类10

stl源码剖析中文版(stl标准库源码)

hacker2022-07-10 17:35:28分类1055
本文目录一览:1、C++的STL入门教程推荐哪本?2、

本文目录一览:

C++的STL入门教程推荐哪本?

其实,一开始我也想通过一本书将STL弄通,但是渐渐发现应用才是王道。所以,建议不要太着急,先通过《C++ prime》等参考书了解STL里有什么东西,大概是做什么stl源码剖析中文版stl源码剖析中文版;其次,从网上搜索vector的用法,了解了它,STL就见了“冰山一角”了,当感觉遇到的问题可以用STL里的某种存储结构更方便的解决掉,再到网上搜这种存储结构的用法(还有一些应用技巧也会有的);最后,如果想写更高效的编写代码,建议可以考虑深读一本介绍STL底层的书(eg:《C++程序设计语言》裘宗燕译)(很耗时间的,在比较不错的了解和运用STL后再看,否则令人头疼)。

祝学习愉快stl源码剖析中文版

——仅个人建议,仅供参考,选择适合自己学习方式

《STL源码剖析》pdf下载在线阅读,求百度网盘云资源

《STL源码剖析》侯捷电子书网盘下载免费在线阅读  

链接:

密码:ignd  

书名:STL源码剖析

作者名:侯捷

豆瓣评分:8.7

出版社:华中科技大学出版社

出版年份:2002-6

页数:493

内容介绍:

学习编程的人都知道,阅读、剖析名家代码乃是提高水平的捷径。源码之前,了无秘密。大师们的缜密思维、经验结晶、技术思路、独到风格,都原原本本体现在源码之中。这本书所呈现的源码,使读者看到vector的实现、list的实现、heap的实现、deque的实现、Red Black tree的实现、hash table的实现、set/map的实现;看到各种算法(排序、查找、排列组合、数据移动与复制技术)的实现;甚至还能够看到底层的memory pool和高阶抽象的traits机制的实现。

作者介绍:

侯捷,出生于1961年09月28日,台南县柳营乡人,南京大学客座教授。第一次在大陆大学授课: 南京大学软件学院 and 同济大学软件学院。

 

初学者可以看得懂《STL源码剖析》吗?

《STL源码剖析》不是讲怎么样使用STL和STL技巧的,是关于STL核心代码的剖析,是面向有丰富经验的STL程序员来补充和更好的理解STL底层核心机制,初学者看这本书的话基本上是一头雾水,建议先从基础学起,C++标准程序库 和C++stl是比较好的入门且使用的书籍,以后有了一定的STL经验,再去研究STL源码剖析,相信那时候你就会有了另一番对STL的领悟。

C++ STL有哪些经典书籍?

经典书籍比较多,其中最经典的就是《C++标准程序库:自修教程与参考手册》。

1、《C++标准程序库:自修教程与参考手册》

这本书作为学习STL的第一本书是绝对适合的,一开始就会有C++语言的必备知识,以免你一头扎进STL中直接淹死。

《The C++ Standard Library》(中文版《C++ 标准程序库》)不仅对每一个程序库组件提供范围广泛的说明,也对繁杂的感念提供清楚明亮的解释,并描述高效运用这些组件时需要的实际编程细节,提出一个又一个的范例程序。 

这本包含最新资料的完整书籍,反映出被 ANSI/ISO C++ 语言标准规格书纳入的 C++ 标准程序库的结构。更明确地说,本书将焦点放在标准模板库(Standard Template Library)身上,检验其中的容器(containers)、迭代器(iterators)、仿函数(functors)和算法(algorithms)。

你还可以找到特殊容器、字符串(strings)、数值类别、国际化议题、IOStream。每一个组件都有深刻的呈现,包括其介绍、设计、运用实例、细部解说、陷阱、意想不到的危险,以及相关类别和函数的确切标记(signature)和定义。

一份见解深刻的基础概念介绍和一个程序库综合鸟瞰,会对新手带来快速的提升。

2、《Effective STL 中文版: 50条有效使用STL的经验》

说到Scott Meyers的大名,C++程序员应该是无人不知无人不晓,他开创性的写了两本C++巨著《Effective C++》和《More Effective C++》都是每一个C++程序员必备书籍。

这本书自然也不例外,其中讲解了50条容易将C++程序员引入歧途的错误案例和正确修正使用方法。每一个使用STL的程序员都必备该书。

3、《STL源码剖析》

侯捷先生出品的书籍,一般品质都有所保证。这也是侯捷先生自己原创的一本书,这本书主要是深入到SGI版本的STL实现中,将STL的代码抽丝剥茧,将最鲜血淋漓的那部分取出来给大家指导清除。阅读这本书。

学习STL是次要的,学习数据结构是次要的,主要是要学习侯捷先生治学的精神和分析源代码的方式方法,这才是最重要的。这本书一再印刷,销量已经证明了一切。各大图书商城有售。

4、《STL扩展技术手册(卷1):集合和迭代器》

相信一大群读者没有听说过这本书,但是这本书也是非常值得推荐的一本STL书籍,这本书既不是教你STL怎么用,也不是教你STL的实现是怎么样的,而是教你如何扩展你自己的STL组件。基本上是国内C++图书界中唯一一本讲解STL扩展的专著。

作者之前写过一本《Imperfact C++》的书,这本书不知道为什么在国内的销量也不好,但是该作者的C++技术造诣非常深厚,他的著作也是每一个想要深入学习C++的读者所必读的书籍。作者本来打算将STL 扩展技术手册分为1,2两卷出版,可惜第一卷出版后,第二卷再也出不来了。

5、介绍

STL(StandardTemplate Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++Standard Library)中,是ANSI/ISOC++标准中最新的也是极具革命性的一部分。

该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。

从逻辑层次来看,在STL中体现了泛型化程序设计的思想(genericprogramming),引入了诸多新的名词,比如像需求(requirements),概念(concept),模型(model),容器(container),算法(algorithmn),迭代子(iterator)等。

与OOP(object-orientedprogramming)中的多态(polymorphism)一样,泛型也是一种软件的复用技术;

从实现层次看,整个STL是以一种类型参数化(typeparameterized)的方式实现的,这种方式基于一个在早先C++标准中没有出现的语言特性--模板(template)。

如果查阅任何一个版本的STL源代码,你就会发现,模板作为构成整个STL的基石是一件千真万确的事情。除此之外,还有许多C++的新特性为STL的实现提供了方便;

6、STL的六大组件

·        容器(Container),是一种数据结构,如list,vector,和deques ,以模板类的方法提供。为了访问容器中的数据,可以使用由容器类输出的迭代器;

·        迭代器(Iterator),提供了访问容器中对象的方法。例如,可以使用一对迭代器指定list或vector中的一定范围的对象。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器也可以是那些定义了operator*()以及其他类似于指针的操作符地方法的类对象;

·        算法(Algorithm),是用来操作容器中的数据的模板函数。例如,STL用sort()来对一个vector中的数据进行排序,用find()来搜索一个list中的对象,函数本身与他们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用;

·        仿函数(Function object,仿函数(functor)又称之为函数对象(functionobject),其实就是重载了()操作符的struct,没有什么特别的地方

·        迭代适配器(Adaptor)

·        空间配制器(allocator)其中主要工作包括两部分:对象的创建与销毁和内存的获取与释放

《STL源码剖析》还能看吗?C++标准中 STL 只是加入了新的库,而不是重写?

当然可以看。学习stl的实现原理的目的,是学习编程范式、技巧、语言的深入理解等过程。且不说c++ 11引入的新特性,只不过是一些语法糖,目前在工业界并没有普及开来。学习语言应该不仅仅限于学习语法本身,更重要的是背后的设计思想。这些思想,不管c++、python还是java等,都是通用的原理。

发表评论

评论列表

  • 假欢寂星(2022-07-10 20:13:33)回复取消回复

    构的用法(还有一些应用技巧也会有的);最后,如果想写更高效的编写代码,建议可以考虑深读一本介绍STL底层的书(eg:《C++程序设计语言》裘宗燕译)(很耗时间的,在比较不错的了解和运用STL后再看,否则令人头疼)。祝学习

  • 痴者橙柒(2022-07-11 04:59:06)回复取消回复

    的新特性,只不过是一些语法糖,目前在工业界并没有普及开来。学习语言应该不仅仅限于学习语法本身,更重要的是背后的设计思想。这些思想,不管c++、python还是java等,都是通用的原理。

  • 断渊隐诗(2022-07-10 19:03:47)回复取消回复

    标准程序库:自修教程与参考手册》这本书作为学习STL的第一本书是绝对适合的,一开始就会有C++语言的必备知识,以免你一头扎进STL中直接淹死。《The C++ Standard Library》(中文版《C++ 标准程序库》)不仅对每一个程序库组件提供范围广泛的说明,也对繁杂

  • 泪灼酒颂(2022-07-10 18:21:52)回复取消回复

    ,以及相关类别和函数的确切标记(signature)和定义。一份见解深刻的基础概念介绍和一个程序库综合鸟瞰,会对新手带来快速的提升。2、《Effective STL 中文版: 50条有效使用STL的

  • 辙弃娇痞(2022-07-11 01:28:28)回复取消回复

    ython还是java等,都是通用的原理。