- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
標準樣版庫
(Standard Template Library) ;前言;C++提供之「標準樣版庫」;對經常使用之資料結構(如:陣列、堆疊、佇列與串列等)與操作此資料結構之相關「演算法」,提供便利的描述與操作。使用者不再需要自行設計細部的操作程式,而僅是高階的描述與操作。
「容器樣版類別」的設計主要係針對「資料結構」;「演算法樣版類別」的設計主要係針對「演算法」;「疊代器樣版類別」的設計主要係針對「元件間的膠合」 (Coupling);「轉換器樣版類別」的設計主要係針對「容器間的轉接」 (Adapting);「函數物件」的設計主要係針對「運算需求的傳遞」。;容器(Container);就「物件導向」程式設計,簡單的說,「容器」就是一種事先規劃建立之「資料結構」 (例如書架、桶子等),可藉以儲存各式各樣的「資料」 (例如書、水、米、沙與油等),可以是C++提供的「STL容器」或「使用者自行設計之容器」。
C++提供的「容器」主要包含「序列容器」 (Sequence Container)與「關聯容器」 (Associate Container),而操作這些容器時,須藉由「疊代器」 (Iterators)來標示處理的對象為那一個。;疊代器;種類;序列容器的定義、宣告與使用;向量序列容器;其中資料型態可以是C++之int, char, float或自行定義之型態等等;
物件名稱是儲存「容器」名稱;
大小是「容器」起始大小;
資料為「容器」起始值。若省略資料項,則只設定「容器」起始大小,無「容器」起始值。若省略大小與資料項,則「容器」起始值均設定為0。
vector的「疊代器」變數宣告語法如下:;vector成員函數;關聯容器的定義、宣告與使用;單項集合與多項集合;其中資料型態可以是C++之int, char, float等等;物件名稱是儲存容器名稱;「函數物件」可以為less或greater,表示集合中之元素依「由小到大排列」或「由大到小排列」,該項省略時,表示「由小到大排列。」尤其注意函數物件資料型態後須空一格空白,否則編譯器會將之視為輸入運算子。set的「疊代器」變數宣告語法如下:
;begin ;單項對應器與多項對應器;其中索引值型態為查詢資料之索引值型態;資料型態可以是C++之int, char, float等等;物件名稱是儲存容器名稱;「函數物件」可以為less或greater,表示集合中之元素依「由小到大排列」或「由大到小排列」,該項省略時,表示「由小到大排列」。尤其注意函數物件資料型態後須空一格空白,否則編譯器會將之視為輸入運算子,使用時必須引入標頭檔map,map「疊代器」變數宣告語法如下:;begin ;轉換器;轉換器;「堆疊轉換器」使用時須引入標頭檔stack, 佇列與優先權佇列轉換器,使用時須引入標頭檔queue。物件變數宣告語法如下:;「資料型態」可以是C++之int, char, float等等;物件名稱是儲存容器名稱。「轉換容器」如表12.3-1所示,省略時即不使用「容器」轉換,直接使用這些資料結構。而「轉換器」所提供的成員函數如表12.3-2 所示。;演算法;「標準樣版庫」存有很多且常用現成「演算法」,詳如表12.4-1所示,主要包含六大類別:(1)修改移除(Modifying and Removing):
(2)排序(Sorting)
(3)比對與搜尋 (Comparing and Searching)
(4)轉換與對調(Mutating)
(5)數值處理(Numeric Processing)
(6)函數物件(Function Object):
使用時須引入標頭檔algorithm,且「數值處理」尚須引入標頭檔numeric;「函數物件」尚須引入functional標頭檔。;adjacent_find;nth_element標準樣版庫
(Standard Template Library) ;前言;C++提供之「標準樣版庫」;對經常使用之資料結構(如:陣列、堆疊、佇列與串列等)與操作此資料結構之相關「演算法」,提供便利的描述與操作。使用者不再需要自行設計細部的操作程式,而僅是高階的描述與操作。
「容器樣版類別」的設計主要係針對「資料結構」;「演算法樣版類別」的設計主要係針對「演算法」;「疊代器樣版類別」的設計主要係針對「元件間的膠合」 (Coupling);「轉換器樣版類別」的設計主要係針對「容器間的轉接」 (Adapting);「函數物件」的設計主要係針對「運算需求的傳遞」。;容器(Container);就「物件導向」程式設計,簡單的說,「容器」就是一種事先規劃建立之「資料結構」 (例如書架、桶子等),可藉以儲存各式各樣的「資料」 (例如書、水、米、沙與油等),可
文档评论(0)