`
chelsea
  • 浏览: 117824 次
  • 来自: ...
社区版块
存档分类
最新评论

Essential C++ Primer

    博客分类:
 
阅读更多

Please "Learning Standard C++ as a New Language", and "Speaking C++ as a Native"

朋友的公司还在用C++的环境编写着“带类的C”代码,每天回来就倒苦水,我曾经工作过的一家公司也有动辄几千行的C风格的函数
这里概述一下C++最最基本的用法,只能算是入门前的准备工作

一、编程本身

  • 描述问题,用于与人交流

  • 描述解决方案,用于与计算机交流

假设解决方案就是问题的描述本身,那么,这是完美的,例如 Select * From books;
而目前主流开发平台还做不到这一点,于是存在两个我们需要处理的空间,“问题空间”和“算法空间”

小说的描述依赖于自然语言,凡不可言说者必保持沉默,程序的表达依赖于编程语言
学习C++,就是用C++的术语、词汇来描述这两个空间,而不是C语言的术语、词汇;其它语言也是如此
因此,你应该首先熟悉C++本身

二、语言本身

不要理会面向对象,不要理会泛型编程,不要理会函数式编程,不要理会产生式编程,在上学学习母语语法前,你已经学会了用人类的语言表达高兴愤怒,而不是用小狗或别的动物的语言,也已经学会了如何用人类的语言讨要你心爱的玩具;让我们用C++的语言做个玩具程序:

读入一个文本文件,将每一行文本形成的字符串按字母顺序从小到大排序,然后将排序后的内容写入另一个文件

分析:

问题空间中的对象:输入文件,字符串,输出文件
算法空间中的对象:读,缓冲,排序,写

用C++描述:

输入文件:ifstream
字符串:string
输出文件:ofstream

读:getline
缓冲:vector, vector.push_back
排序:sort
写:copy

最终的程序:

int main()
{
ifstream fin("in.txt") ; //输入文件
vector<string> buf; //缓冲区
string d; //字符串临时对象
while(getline(fin,d)) buf.push_back(d) ; //读,并缓冲
sort(buf.begin() ,buf.end()) ; //排序
ofstream fout("out.txt") ; //输出文件
copy(buf.begin() ,buf.end() ,ostream_iterator<string>(fout,"/n")) ; //写
}

没有char*[],scanf,printf,OpenFile等非我族类的词汇

三、入门

至少有四本教材可用于“正确的C++的正确的入门”,推荐阅读

Essential C++
C++ Primer
The C++ Programming Language
The C++ Standard Library

四、提高

定理的证明依赖于基础数学语言,但也可以依赖于其它已经被证明的定理,入门之后,就可以学习如何用C++来表达面向对象,表达通用算法,像前文的sort,copy等,或用来实现其它更高层的抽象,如用它来实现一种DSL,使我们能够将上面程序的描述和解决方案用下面的语句统一起来:

Write (Read * From in.txt Orderby alpha) To out.txt;

分享到:
评论

相关推荐

    Essential C++中文版.PDF stanley B. Lippman 侯捷 侯俊杰

    《Essential C++中文版》是C++编程语言的经典入门书籍,由国际知名专家Stanley B. Lippman撰写,著名计算机专家侯捷及其搭档侯俊杰翻译。这本书是《C++ Primer》的作者Stanley B. Lippman在该书第三版完成后,专为...

    Essential C++ (中文版PDF) 附加源代码

    "Primer C++缩减版"意味着本书可能是《C++ Primer》的精简版本,旨在更高效地传授C++的核心概念和语法。 C++是一种强类型、静态类型的编程语言,起源于C语言,但增加了面向对象编程(OOP)和泛型编程(Generic ...

    Essential C++中文版

    而《Essential C++》是他继《C++ Primer》之后,专门针对初学者设计的一本书籍。尽管它比《C++ Primer》更为简短,但并不意味着它只是浅显的入门读物。Lippman在书中对素材的选择与组织安排下了很大的功夫,以确保...

    Essential C++中文版.pdf

    本书的翻译者侯捷在译序中提到,Lippman的《C++ Primer》因其详尽和全面而著称,但随着Lippman在C++领域的进一步探索,他决定编写这本更专注于面向对象编程基础的《Essential C++》。尽管这本书的篇幅较《C++ Primer...

    Essential C++中文版(详细书签)

    本书的序言部分指出,尽管Lippman先前编著的《C++ Primer》是C++领域内极具权威的教材,但它长达1237页,对于初学者来说可能过于庞大和深奥。因此,Lippman希望提供一本更为轻薄短小的书籍,这便是《Essential C++》...

    C++ Primer Plus Sixth Edition

    《C++ Primer Plus 第六版》是编程领域中一本经典的C++学习教程,由经验丰富的技术专家Stephen Prata撰写。这本书旨在为编程专业人士提供高质量的参考和教程,深入浅出地讲解C++语言的核心概念和技术。 C++ Primer ...

    Essential C++ 中文版

    essential c++ ,与c++ primer 同作者,比其更简单,更适合初学者

    essential c++中文版

    Essential C++中文版(全),C++初学者的必读之物。C++ PRIMER的精华浓缩版。

    Essential C++(英文HTML)

    可以不太严格地认为这本书是《C++Primer》的精简版,入门级C++教材,但不是为了完完全全的编程新手而写。(本来还以为这个网站也像其它的骗人网站一样,表面写这有好书,却只是耽误我们的注册时间。没想到却下到了C++...

    essential c++pdf

    Lippman也是《C++ Primer》这本经典教材的作者之一,因此《Essential C++》可以视为他对于C++核心概念的精炼阐述。这本书对于初学者和有一定经验的开发者来说都是一个极好的资源,因为它不仅涵盖了C++的基础,还深入...

    C++ 学习经典书籍 英文原版

    全部英文版,包括: Accelerated c++ C++Primer C++程序设计语言(特别版) Effective C++ Third Edition Essential C++ Exceptional.C++ More Effective C++ More Exceptional C++

    C++_图书三人谈

    - 认为《Essential C++》适合作为教材,《C++ Primer》适合作为参考书,《Effective C++》适合作为课外读物。 - 不赞同一开始就养成“好习惯”的观点,认为实践更重要。 #### 嘉宾一:孟岩(梦魇) - **背景简介*...

    C++几本书名字

    例如,《C++ Primer》和《Essential C++》适合初学者入门;而《Effective C++》和《STL源码剖析》则更适合有一定基础的开发者深入学习;《MFC编程实践》则为那些需要处理Windows GUI编程的人提供了一个很好的起点。...

    c++学习书籍.pdf

    Lippman 的 C++ Primer 或 Essential C++,这两本书都是学习 C++ 的基础书籍。C++ Primer 是一本非常详细的书籍,适合基础较好的学习者,而 Essential C++ 则是基础较弱的学习者。 接下来,作者推荐阅读 Piken 和 ...

    年度最经典C++教程10本打包下载

    C++.Common.Knowledge.Essential.Intermediate.Programming.chm C++.Template.Metaprogramming.chm Effective.C.Plus.Plus.55.Specific.Ways.to.Improve.Your.Programs.and.Designs.3rd.Ed.chm Exceptional.C++....

    c++学好c++必须的十本书籍

    Essential C++ 中文版C++ Primer中文版(第4版)(特别版)Effective C++:改善程序技术与设计思维的55个有效做法(第三版)(中文版)C++ 编程思想More Effective C++中文版Exceptional C++中文版More Exceptional ...

Global site tag (gtag.js) - Google Analytics