泛型程式設計

qq_906638174發表於2020-10-20

STL是一種泛型程式設計,泛型程式設計旨在編寫獨立於資料型別的程式碼,而在C++中,完成通用程式的工具是模板。迭代器是理解STL的關鍵。模板使得演算法獨立於儲存的資料型別,而迭代器使得演算法獨立於使用的迭代器型別。

迭代器型別:STL定義了5種迭代器,分別為輸入迭代器、輸出迭代器、正向迭代器、雙向迭代器、隨機訪問迭代器

輸入迭代器:不會修改容器中的值,對輸入迭代器解除引用將使程式能夠讀取容器中的值,但不一定能讓程式修改值

輸出迭代器:輸出迭代器與輸入迭代器類似,只是解除引用讓程式修改容器值,而不能讀取。即能夠寫卻不能讀,傳送到螢幕上的輸出就是如此。cout可以修改傳送到螢幕的字元流,卻不能讀取螢幕上的內容

正向迭代器:正向迭代器只能使用++字串來遍歷容器,與輸入和輸出的迭代器不同,它總是使用相同的順序遍歷一系列值

雙向迭代器:雙向迭代器具有正向迭代器的所有特性,同時支援遞增和遞減運算子

隨機訪問迭代器:能夠直接跳到容器中的任何一個元素,具有雙向迭代器的所有特性,同時新增了支援隨機訪問的操作

STL演算法可以使用指標來對基於的非STL容易進行操作,C++支援將超尾概念應用與陣列,使得可以將STL演算法應用到常規陣列。

STL具有容器概念(容器、序列容器、關聯容器,概念是具有名稱的通用類別)和容器型別(容器型別是可用於建立具體容器物件的模板)

相關文章