STL 初識STL 系列1

2021-08-22 17:53:49 字數 1995 閱讀 5419

c++ primer plus 第16章讀書筆記。

總結:1. vector 模板

.size()

.swap()         //  ***.swap(yyy)

.begin()  /   .end()                            語法:vector ::iterator pd = scores.begin();

for ( auto pd = scores.begin; pd != scores.end(); pd++)

.push_back()   ,                             自動調整記憶體大小。

.erase(p )   /  erase ( p, q )               p指向元素或 [ p , q ) 區間

.erase( xx.begin() . xx. begin() +n )    迭代器 可以用+ n 來表示

.insert ( p,i,j )  /  insert( p, t)  /   insert ( p, n , t)  

2. for_each()   //  random_shuffle()   //  sort()   

這些 直接是函式括號形式,不是物件呼叫的方法。

設showreview為乙個cout的函式物件。

for_each( xx.begin(), xx. end(0 , showreview)   

sort( ***.begin() , ***. end() )                                //   按照預設的函式的排序。

sort (***. begin () , ***. end() , worsethan )        // 按照自定義的worsethan函式 排序。

random_shuffle( ***.begin() , ***. end() ). 

3. 基於範圍的for 迴圈。 c++11

double prices[5] ;

for_each( prices. begin(), prices.end(), showreview)

等價於  for (auto x : prices) showreview( x )

auto 會自動獲取prices 這一類的型別,for定義了x,函式直接使用x的範圍。

4. 對迭代器 進行  * 解除引用。

vector < double > :: iterator pr ;

for ( pr = xx.begin() ; pr != xx.end() ; pr++)

cout << *pr 《可化簡 :

for (auto pr = xx.begin() ; pr != xx.end() ; pr++)

cout << *pr <5.  copy()

copy (  xx.begin() , xx. end()  , pos)  

pos位置可以表示輸出流的迭代器,有ostream_iterator 模板,

# include < iterator>

ostream_iterator< int, char>  out_iter ( cout , "  ")      定義乙個輸出的函式物件。「  」為資料項的間隔

這樣就可以  copy (xx. begin() ,xx.end() ,out_iter)  直接 把 " xx " 內容全部輸出到cout.

6.  reverse iterator

.rbegin()   /  . rend()                                   反轉迭代器

copy( xx.rbegin.() , xx.rend() , pos)          將檔案反轉後輸出到pos。(從後向前)

STL學習1初識

stl基本概念 stl從廣義上分為 容器 containter 演算法 algorithm 迭代器 iterator 六大元件 容器 各種資料結構 演算法 各種演算法sort search 迭代器 容器與演算法之間的橋梁,所有容器有自己的專屬迭代器 原生指標也是一種迭代器 仿函式 functors行...

STL系列(1) 簡介

c stl standard template library標準模板庫 是通用類模板和演算法的集合,它提供給程式設計師一些標準的資料結構的實現如 queues 佇列 lists 鍊錶 和 stacks 棧 等.c stl 提供給程式設計師以下三類資料結構的實現 1.順序性容器 1 vector 從...

初識STL和容器

stl概念 stl是 c 標準庫的最重要的組成部分,stl 標準模板庫 不僅是乙個可復用的元件庫,而且是乙個包羅演算法和資料結構的軟體框架。stl的六大元件 1.容器 各種資料結構 vector list map set 等 2.迭代器 扮演容器和演算法的膠合劑 3.空間配置器 負責記憶體空間的分配...