c++ primer plus 第16章讀書筆記。
總結:1. vector 模板
.size()2. for_each() // random_shuffle() // sort().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)
這些 直接是函式括號形式,不是物件呼叫的方法。3. 基於範圍的for 迴圈。 c++11設showreview為乙個cout的函式物件。
for_each( xx.begin(), xx. end(0 , showreview)
sort( ***.begin() , ***. end() ) // 按照預設的函式的排序。
sort (***. begin () , ***. end() , worsethan ) // 按照自定義的worsethan函式 排序。
random_shuffle( ***.begin() , ***. end() ).
double prices[5] ;4. 對迭代器 進行 * 解除引用。for_each( prices. begin(), prices.end(), showreview)
等價於 for (auto x : prices) showreview( x )
auto 會自動獲取prices 這一類的型別,for定義了x,函式直接使用x的範圍。
vector < double > :: iterator pr ;6. reverse iteratorfor ( 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.
.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.空間配置器 負責記憶體空間的分配...