C++ 標準庫-學習教本與參考工具, 2/e (精裝) (The C++ Standard Library: A Tutorial and Reference, 2/e)(書況略舊,書側有些許黴斑)

Nicolai M. Josuttis 著、侯捷 譯

買這商品的人也買了...

商品描述

書況略舊,書側有些許黴斑,不介意在下單~

<內容特色>

全球銷售冠軍之C++教本
— 如今進化至C++11 —

C++標準庫提供一整套用途廣泛的classes和interfaces,大大擴充了C++語言。然而這個巨大的產品無法自帶完善的解釋。為能夠完整使用其所有組件並受惠於其強大威力,你需要一個好教本,它必須比僅只列出classes和其functions多得多。

《C++標準庫-學習教本與參考手冊 第二版》談的是與最新ANSI/ISO C++ Standard (C++11) 結合的標準庫。本書為標準庫的每一組件提供範圍廣泛的說明,包括目的與設計之介紹,複雜觀念之清晰描述,必要之編程細節,陷阱之歸納整理,關鍵classes與functions之精確宣告和定義,以及為數眾多且有效運行之程式碼。具體而言,本書專注於標準模板庫(Standard Template Library, STL),詳細盤查了其中的容器(containers)、迭代器(iterators)、函式物件(function objects)和STL演算法(algorithms)。

本書涵蓋C++11標準庫的所有新組件,包括:
‧Concurrency
‧Fractional Arithmetic
‧Clocks and timers
‧Tuples
‧New STL containers
‧New STL algorithms
‧New smart pointers
‧New locale facets
‧Random numbers and distributions
‧Type traits and utilities
‧Regular expressions

本書也診察了新的C++編程風貌和它對標準庫的影響,包括lambdas, range-based for loops, move semantics和variadic templates.

本書官網是www.cppstdlib.com,你可以在其中找到本書的範例程式碼。

<作者介紹>

Nicolai M. Josuttis 是一位獨立技術顧問,他設計中大型軟體系統,應用領域橫跨電子通訊、交通、金融、製造業。身為C++標準委員會之library working group前任會員,他因為寫出了權威著作(本書)而廣為編程社群(programming community)熟知。除了自1999年第一版問世便成為全球銷售冠軍之《The C++ Standard Library》,他的著作還包括《C++ Templates: The Complete Guide》(與David Vandevoorde合著,Addison-Wesley, 2003)以及《SOA in Practice: The Art of Distributed System Design》(O'Reilly Media, 2007)

侯捷 是一位獨立技術顧問,2005年起客座任教於南京大學和同濟大學迄今。在此之前他曾在臺灣工研院開發CAD/CAM軟體並任教於元智大學。著有《深入淺出MFC》、《STL源碼剖析》、《無責任書評》,譯有《C++ Primer》、《Effective C++》、《More Effective C++》等書。

<序>

第二版譯序

『不熟悉C++ 標準庫,任何人都稱不上是高生產力的C++ 程式員。』
這是我對每一位學生說的話。

自C++98 (1998) 至C++11 (2011),這個語言有了相當的變化。而變化尤其劇烈 — 或者你也可以說攻城略地尤其大者 — 是其日益包山包海的標準庫(Standard Library)。如今,不但昔日閃亮招牌如STL容器、演算法、迭代器…依然熠熠發光,更添加了Tuples, Smart Pointers, Type Traits, Clocks and Timers, Regular Expression, Concurrency…等眾多組件。腳步一個沒跟上,很可能同儕寫出來的程式碼,在你眼中都要逐漸模糊逐漸陌生了。

面對陌生,我們最大的障礙在於心中的怯弱。To be or not to be, that’s the question! 不要像哈姆雷特一樣猶豫不決。面對前程,必須果敢。

  
愈來愈多的術語,特別是組合式長術語,為翻譯帶來極大困擾。關於術語翻譯,我的態度如下:

* 技術書籍(尤其高階技術書籍)之中譯,價值不在於體現全中文化閱讀。直接呈現英文術語很多時候更能營造突出的視覺效果,進而有利閱讀,形成深刻印象。

* 儘可能兼顧中英詞性平衡。例如「面對向量和deque兩種容器…」就不如「面對vector和deque兩種容器…」讀來順暢。

* 本書讀者不可能受制於英文單字。我們要學習的是術語代表的技術,而非術語的中文名稱。

* 與C++ 關鍵字重合的術語多半不譯,例如static, template, class…以及延伸出去的member template, function template, class template…等等。

* 任何術語第一次出現(或相隔一長段距離後再出現)時多半中英並陳。但由於你可能採取跳躍式閱讀,所謂「第一次出現」或「相隔一長段距離後再次出現」也許對你意義不大。

* STL各資料結構名稱皆不譯,例如array, vector, list, deque, hast table, map, set, stack, queue, tree…。

* STL六大組件的英文術語原欲全部保留,但由於頻繁出現,對版面的中英比例形成視覺威脅,因此採用以下譯名:container容器,algorithm演算法,iterator迭代器,adapter配接器,functor object函式物件,allocator分配器。這些術語有時中文呈現,有時英文呈現,有時中英並陳,取決於當時語境。

* 全書按英文版頁次編排,並因此得以保留原書極其詳盡的索引。索引詞條皆不譯 (因為書中相應保留了相當份量的英文術語)。

  
這是個知識爆炸、資訊量也爆炸的時代。網路上如山似海的資訊:文章、文件、文檔、文獻和繁若天星的論壇、群組…,很多都是免費的(因而似乎特別有吸引力),但我們的精力和時間才是更寶貴的東西。檢閱並且評論過許許多多C++ 標準庫相關讀物後,面對這本結構和細節都臻上乘的優秀教本,我強烈推薦給你。

侯捷
2014/10/20, White Rock

 

第二版序言

我從未想過本書第一版會賣得如此長久。現在,經過12年的等待,出新版本的時候到了,一個涵蓋最新C++11標準的新版本。

注意,其中的意義比僅僅添加新子庫更多更大。C++ 已經改變了,其標準庫的幾乎所有典型應用如今看起來都有那麼一點不同。這不是因為語言出現巨大變化,而是許多小改變造成的結果,例如運用rvalue references和move semantics, range-based for loops, auto, 以及新的template特性。因此,本書不但展現原標準庫的補充性質及新成員,書中所有例子也都從新寫過,或至少局部改寫。儘管如此,為了支援那些仍然使用「舊」C++ 環境的程式員,本書會在遭遇C++ 版本差異時加以描述。

我學習C++11有一段艱難的歷程。大約二年前我開始看C++11但並未追隨標準化的腳步,因此確實遭遇了理解上的麻煩。但是標準委員會的人幫助我描述及表現C++11新特性,一如它們如今呈現的樣貌。

最後,請注意,本書有個困擾:雖然份量上由800頁成長到超過1,100頁,我還是無法完整呈現C++ 標準庫。標準庫中單單針對C++11就有大約750頁的描述,都是十分精鍊的文字,沒有太多說明。基於這個原因,我必須取捨哪些性質需要描述,並決定以怎樣的細度描述之。再一次,C++ 社群中的許多人幫助我做出決定。我的企圖集中在一般應用程式員需要的東西。若干本書捨棄的部分被我做成一份補充篇章放在本書官網 http://www.cppstdlib.com。即便如此,你還是會在C++ 標準規格書中找到我未曾討論的細節。

教學的藝術,並非體現在「呈現每一面」,而是一種「從砂礪中滔洗黃金」的藝術,從中取得最大價值。但願我是成功的。

<章節目錄>

1 關於本書
2 C++ 及標準庫簡介
3 語言新特性
4 一般概念
5 通用工具
6 標準模板庫
7 STL 容器
8 細探 STL 容器成員
9 STL 迭代器
10 STL 函式物件及 Lambdas
11 STL 演算法
12 特殊容器
13 字串
14 正則表達式
15 以Stream 完成I/O
16 國際化
17 數值
18 並行運算
19 分配器
參考書目
索引