泛型程式設計
STL是一種泛型程式設計,泛型程式設計旨在編寫獨立於資料型別的程式碼,而在C++中,完成通用程式的工具是模板。迭代器是理解STL的關鍵。模板使得演算法獨立於儲存的資料型別,而迭代器使得演算法獨立於使用的迭代器型別。
迭代器型別:STL定義了5種迭代器,分別為輸入迭代器、輸出迭代器、正向迭代器、雙向迭代器、隨機訪問迭代器
輸入迭代器:不會修改容器中的值,對輸入迭代器解除引用將使程式能夠讀取容器中的值,但不一定能讓程式修改值
輸出迭代器:輸出迭代器與輸入迭代器類似,只是解除引用讓程式修改容器值,而不能讀取。即能夠寫卻不能讀,傳送到螢幕上的輸出就是如此。cout可以修改傳送到螢幕的字元流,卻不能讀取螢幕上的內容
正向迭代器:正向迭代器只能使用++字串來遍歷容器,與輸入和輸出的迭代器不同,它總是使用相同的順序遍歷一系列值
雙向迭代器:雙向迭代器具有正向迭代器的所有特性,同時支援遞增和遞減運算子
隨機訪問迭代器:能夠直接跳到容器中的任何一個元素,具有雙向迭代器的所有特性,同時新增了支援隨機訪問的操作
STL演算法可以使用指標來對基於的非STL容易進行操作,C++支援將超尾概念應用與陣列,使得可以將STL演算法應用到常規陣列。
STL具有容器概念(容器、序列容器、關聯容器,概念是具有名稱的通用類別)和容器型別(容器型別是可用於建立具體容器物件的模板)
相關文章
- java 泛型程式設計Java泛型程式設計
- 十、GO程式設計模式 : 泛型程式設計Go程式設計設計模式泛型
- 泛型程式設計詳解(一)泛型程式設計
- 泛型程式設計與 OI——modint泛型程式設計
- 物件導向程式設計和`GP`泛型程式設計物件程式設計泛型
- GO語言泛型程式設計實踐Go泛型程式設計
- 泛型最佳實踐:Go泛型設計者教你如何用泛型泛型Go
- Swift使用協議加泛型程式設計(一)Swift協議泛型程式設計
- Rust 程式設計影片教程(進階)——001 泛型Rust程式設計泛型
- 在C語言中實現泛型程式設計C語言泛型程式設計
- C語言如何實現泛型程式設計?C語言泛型程式設計
- Rust 程式設計視訊教程(進階)——001 泛型Rust程式設計泛型
- 使用 Go 泛型的函數語言程式設計Go泛型函數程式設計
- 02. 程式設計核心內功心法之泛型程式設計泛型
- 談談 "JS 和 設計泛型"JS泛型
- java筆記-two-java泛型程式設計(簡記)Java筆記泛型程式設計
- Go泛型草案設計簡明指南Go泛型
- 好程式設計師Java教程分享Java難點解析之泛型程式設計師Java泛型
- Java核心技術第八章——泛型程式設計(1)Java泛型程式設計
- Kotlin語言中的泛型設計哲學Kotlin泛型
- 《Java核心技術(卷1)》筆記:第8章 泛型程式設計Java筆記泛型程式設計
- Java中的泛型程式設計:深入理解型別引數與型別邊界的使用Java泛型程式設計型別
- 【C++ 泛型程式設計01:模板】函式模板與類别範本C++泛型程式設計函式
- 泛型類、泛型方法及泛型應用泛型
- 【java】【泛型】泛型geneticJava泛型
- 好程式設計師大資料學習路線分享Scala系列之泛型程式設計師大資料泛型
- 好程式設計師Java培訓之泛型繼承原理與用法詳解程式設計師Java泛型繼承
- 泛型類和泛型方法泛型
- 泛型--泛型萬用字元和泛型的上下限泛型字元
- TypeScript 泛型介面和泛型類TypeScript泛型
- Go 泛型之泛型約束Go泛型
- Swift 4 泛型:如何在你的程式碼或App裡應用泛型Swift泛型APP
- 泛型泛型
- Go 泛型的這 3 個核心設計,你都知道嗎?Go泛型
- 初探 TypeScript 型別程式設計TypeScript型別程式設計
- 好程式設計師Java學習路線分享java為什麼不支援泛型陣列程式設計師Java泛型陣列
- TypeScript 泛型型別TypeScript泛型型別
- 型別 VS 泛型型別泛型