泛型程式設計
STL是一種泛型程式設計,泛型程式設計旨在編寫獨立於資料型別的程式碼,而在C++中,完成通用程式的工具是模板。迭代器是理解STL的關鍵。模板使得演算法獨立於儲存的資料型別,而迭代器使得演算法獨立於使用的迭代器型別。
迭代器型別:STL定義了5種迭代器,分別為輸入迭代器、輸出迭代器、正向迭代器、雙向迭代器、隨機訪問迭代器
輸入迭代器:不會修改容器中的值,對輸入迭代器解除引用將使程式能夠讀取容器中的值,但不一定能讓程式修改值
輸出迭代器:輸出迭代器與輸入迭代器類似,只是解除引用讓程式修改容器值,而不能讀取。即能夠寫卻不能讀,傳送到螢幕上的輸出就是如此。cout可以修改傳送到螢幕的字元流,卻不能讀取螢幕上的內容
正向迭代器:正向迭代器只能使用++字串來遍歷容器,與輸入和輸出的迭代器不同,它總是使用相同的順序遍歷一系列值
雙向迭代器:雙向迭代器具有正向迭代器的所有特性,同時支援遞增和遞減運算子
隨機訪問迭代器:能夠直接跳到容器中的任何一個元素,具有雙向迭代器的所有特性,同時新增了支援隨機訪問的操作
STL演算法可以使用指標來對基於的非STL容易進行操作,C++支援將超尾概念應用與陣列,使得可以將STL演算法應用到常規陣列。
STL具有容器概念(容器、序列容器、關聯容器,概念是具有名稱的通用類別)和容器型別(容器型別是可用於建立具體容器物件的模板)
相關文章
- java 泛型程式設計Java泛型程式設計
- 十、GO程式設計模式 : 泛型程式設計Go程式設計設計模式泛型
- 泛型程式設計詳解(一)泛型程式設計
- 泛型程式設計與 OI——modint泛型程式設計
- 物件導向程式設計和`GP`泛型程式設計物件程式設計泛型
- c++ 泛型程式設計 之 TypeListsC++泛型程式設計
- .NET泛型程式設計簡介 (轉)泛型程式設計
- c++ 泛型 程式設計 之 Functor 設計模式C++泛型程式設計設計模式
- 泛型最佳實踐:Go泛型設計者教你如何用泛型泛型Go
- GO語言泛型程式設計實踐Go泛型程式設計
- 在C語言中實現泛型程式設計C語言泛型程式設計
- C語言如何實現泛型程式設計?C語言泛型程式設計
- Swift使用協議加泛型程式設計(一)Swift協議泛型程式設計
- C++ primer 模板與泛型程式設計C++泛型程式設計
- c++ 泛型程式設計 之 自動生成程式碼C++泛型程式設計
- Rust 程式設計影片教程(進階)——001 泛型Rust程式設計泛型
- 使用 Go 泛型的函數語言程式設計Go泛型函數程式設計
- 02. 程式設計核心內功心法之泛型程式設計泛型
- C++ 泛型程式設計基礎:模板通識C++泛型程式設計
- [.net 物件導向程式設計基礎] (18) 泛型物件程式設計泛型
- 談談 "JS 和 設計泛型"JS泛型
- Rust 程式設計視訊教程(進階)——001 泛型Rust程式設計泛型
- java筆記-two-java泛型程式設計(簡記)Java筆記泛型程式設計
- [CUJ]泛型程式設計--轉移建構函式 (轉)泛型程式設計函式
- Go泛型草案設計簡明指南Go泛型
- 提給程式設計師的10道Java泛型面試題程式設計師Java泛型面試題
- 泛型粒子系統的設計1 (轉)泛型
- 泛型粒子系統的設計2 (轉)泛型
- 泛型粒子系統的設計3 (轉)泛型
- 泛型粒子系統的設計4 (轉)泛型
- 泛型粒子系統的設計5 (轉)泛型
- 泛型粒子系統的設計6 (轉)泛型
- 泛型粒子系統的設計7 (轉)泛型
- 好程式設計師Java教程分享Java難點解析之泛型程式設計師Java泛型
- Java核心技術第八章——泛型程式設計(1)Java泛型程式設計
- C++ STL與泛型程式設計-第一篇 (Boolan)C++泛型程式設計
- C++ 簡單實現陣列類泛型程式設計示例C++陣列泛型程式設計
- 《Java核心技術(卷1)》筆記:第8章 泛型程式設計Java筆記泛型程式設計