c 程式設計基礎個人筆記(六)

2021-10-06 20:09:58 字數 1965 閱讀 6794

1.string類

2.智慧型指標模板

auto_ptrfilms[5] = ;

auto_ptrpwin;

pwin = films[2]; //轉讓所有權給pwin

*films[2]; // invalid, 程式崩潰,若使用unique_ptr則編譯報錯

3.stl標準模板庫--泛型程式設計

無序集合--unordered_map/unordered_set/unordered_multimap/unordered_multiset

// map 單詞計數

// 關鍵字的型別是string,值的型別是int。進行下標操作是,我們使用string作為下標,得到與此string相關

//聯的size_t型別的計數器。map是由pair物件組成的集合

mapword_count;

string word;

while(cin>> word)

++word_count[word];

// 可以通過word_count[...]訪問,也可以通過迭代器解除引用成為pair物件訪問

// map::iterator iter = word_count.begin();

// iter->first指向鍵值,iter->second指向值

// set的使用--忽略某些單詞

setexclude=;

string word;

while(cin>>word)

4.函式物件

#include plusadd;

double y = add(2.2,3.4);

transform(gr8.begin(),gr8.end(), m8.begin(), plus());//函式物件作為引數

//f2為自適應二元函式物件

binder1st(f2,val) f1; //f1(x)-->f2(val,x)

binder2st(f2,val) f1; //f1(x)-->f2(x,val)

5.輸入、輸出和檔案:詳見c++ primer

6.c++11新標準

char c2 = 273748273; //編譯錯誤,防止縮窄

#include double sum(std::initializeril);

int main() );

}double sum(std::initializeril)

return tot;

}

templatevoid ef(t t, u u)
templateauto eff(t t, u u) -> decltype(t*u)
using ittype = std::vector::iterator;

// 等同

typedef std::vector::iterator ittype;

//匿名函式

(double x)->double

//指定名稱

auto test = (double x)->double;

//傳值和傳引用

int value = 0;

auto a1 = (int x) ;

auto a2 = [value](int x) ;

auto a3 = [this](int x) ;

auto a4 = [&value](int x) ;

auto a5 = [=](int x) ;

auto a6 = [&](int x) ;

auto a7 = [=, &value](int x) ;

auto a8 = [&, value](int x) ;

c 程式設計基礎個人筆記(一)

1.climits標頭檔案定義了關於整型限制的資訊,比如int max為int的最大取值,char bit為位元組的位數。2.cin 和cout 3.寬字元型別wchar t,需要通過wcin和wcout處理,使用字首 l 指示寬字元常量和寬字串,字首 u 表示wchar16 t,字首 u 表示wc...

C 基礎個人筆記

float a 999999.711,b 123456.789,c 123.999 cout 位運算 賦值運算 逗號運算 if 表示式 語句 if 表示式 語句1 else 語句2 if 表示式1 語句1 else if 表示式2 語句2 else if 表示式3 語句3 else 語句n swit...

C 高階程式設計個人筆記搬運 六(泛型 方法)

不僅介面 類和結構可以是泛型的,方法也可以是泛型的。在泛型方法中,泛型型別用方法宣告來定義。泛型方法可以在泛型型別中定義。swap 方法把t定義為泛型型別,該型別用於兩個引數金額乙個變數temp void swap ref t x,ref t y 把泛型型別賦予方法的呼叫,就可以呼叫泛型方法 int...