《C 程式語言》學習筆記2 演算法

2021-08-28 12:21:41 字數 1177 閱讀 2761

1.如演算法find在乙個序列中查詢乙個值,返回的結果是指向找到的元素的迭代器(p的型別string::iterator):

// s包含字元c嗎?

bool has_c(const string& s,char c)

1.有多少種容器就有多少種迭代器,有多少種特殊要求就有多少種迭代器

2.如list::iterator是list的迭代器型別

演算法含義

p = find(b, e, x)

p 是 [b:e) 中第乙個滿足 *p == x 的迭代器

p = find_if(b, e, f)

p是 [b:e) 中第乙個滿足 f(*p) == true 的迭代器

n = count(b, e, x)

n是 [b:e) 中滿足 *q == x 的元素 *q 的數目

n = count_if(b, e, f)

n是 [b:e) 中滿足 f(*q) == true 的元素 *q 的數目

replace(b, e, v ,v2)

將 [b:e) 中滿足 *q == v 的元素 *q 替換為 v2

replace_if(b, e, f, v2)

將 [b:e) 中滿足 *q == v 的元素 *q 替換為 v2

p = copy(b, e, out)

將 [b:e) 拷貝到 [out:p)

p = copy_if(b, e, out, f)

將 [b:e) 中滿足 f(*q) == true 的元素 *q 拷貝到 [out:p)

p = unique_copy(b, e, out, f)

將 [b:e) 拷貝到 [out:p),不拷貝連續的重複元素

sort(b, e)

排序 [b:e) 中的元素,用 < 作為排序標準

sort(b, e, f)

排序 [b:e) 中的元素,用 謂詞 f 作為排序標準

(p1, p2) = equal_range(b, e, v)

[p1:p2)是已排序序列 [b:e) 的子串行,其中元素的值都等於v,本質上等價於二分搜尋 v

p = merge(b, e, b2, e2, out)

將兩個序列 [b:e) 和 [b2:e2) 合併,結果儲存到 [out:p)

《C 程式語言》學習筆記2

程式語言 c 學習的指導思想 focus on programming techniques,not on language features.2.1 c 設計思想 1 能提供使用者介面 成員函式 2 只有通過使用者介面才能訪問資料 privite 3 初始化 掃尾 重構,虛構函式 4 使用者 與實...

c語言學習筆記2

陣列 一 陣列定義 一維陣列 型別說明符 陣列名 常量表示式 例如 int a 10 二維陣列 型別說明符 陣列名 常量表示式 常量表示式 例如 float 3 4 多維陣列 例如 float a 2 3 4 字元陣列 與一維陣列類似 說明1.不允許對陣列的大小做動態定義,即陣列的大小不依賴於程式執...

C語言學習筆記(2)

sizeof a sizeof int int a int a 以下四種函式原型是等價的 陣列的單元表達的是變數,需要用 取位址。運算子可對陣列做,也可對指標做 p 0 a 0 運算子可以對指標使用,也可對陣列做 陣列變數是型別const指標,因此不能變賦值 int a int const b 1 ...