C 11 標準庫筆記1

2021-10-12 07:14:46 字數 1317 閱讀 2141

stl(standard template library,標準模板庫)

初始化:int values

引入 range-based for 迴圈:

for (decl: coll)

forward_list,單向鍊錶實現

2、關聯式容器(associative container),已排序的集合,大都有二叉樹實現,每個節點有乙個父和兩個子,

優點是能快速查詢出某個元素的值。有 4 個

set, 元素按 value 自動排序,不重複

multiset, 元素按 value 自動排序,可重複

map,每個元素都是 key/value pair,其中 key 是排序項,不重複

multimap,每個元素都是 key/value pair,其中 key 是排序項,可重複

3、無序容器(unordered container),無序集合,常由 hash table 實現出來。

有 4 個 unordered_set, unordered_multiset, unordered_map 和 unorderd_multimap

4、其它容器,string

5、容器介面卡,在上面基本容器基礎上實現的,如 stack, queue, priority queue

迭代器是乙個「可遍歷 stl 容器全部或部分元素」的物件。迭代器用來表現容器中的某個位置。基本操作如下:

> operator * ,返回當前位置上的元素值。

> operator ++,下乙個位置

> operator ==,判斷兩個迭代器是否指向同一位置

> operator =,對迭代器賦值

這與 pointer 一樣的功能,不同的是迭代器是 smart pointer,具有遍歷複雜資料結構的能力,其內部運作機制取決於其所遍歷的資料結構。因此,每一種容器都必須提供自己的迭代器,而且介面基本相同。

如 begin() 和 end() 返回迭代器。

for (auto pos = coll.begin(); pos != coll.end(); ++pos) {}    ++pos 比 pos++ 更高效,後者需要乙個臨時物件

演算法並非容器類的成員函式,而是一種搭配迭代器使用的全域性函式。

所有演算法都是用來處理乙個或多個區間內的元素,需要保證區間是有效的,從起點能到達終點。是半開區間,不包含尾部元素的 [begin, end)

迭代器是乙個純抽象概念。可以撰寫一些類具備迭代器介面。

insert iterator

函式物件

C 11標準庫thread簡介

1.建立執行緒物件 1 不代表任何執行執行緒的物件 thread noexcept 2 fn為可呼叫物件 函式 仿函式 過載 運算子的類 初始化為 class lame表示式 args為與之同步的一包引數列表 備註 類的成員函式作為可呼叫物件時,第一引數必須是該成員函式的位址,第二引數應為該類。仿函...

C 標準庫 C 11新特性

c 定義了nullptr以取代0或者null。nullptr是std nullptr t型別的 constexpr 變數。std nullptr t可以顯式或隱式地轉換為任何指標 包括類的成員函式指標 但不能顯式或隱式地轉換為任何其他型別。range based for迴圈 類似於別的語言中的for...

C 11 新標準學習記錄1

1.long long 型別,c primer 第五版中 說long long 是c 11 中新定義的人。我在使用xp 32位 vs2005 時,發現也有long long 型別,並且是8位元組的,應該是編譯器提供的一型別.2,列表初始化,對於內建變數,現在可以支援四種初始化方式 int i 0 i...