1. size_t
back_inserter
2. 提到的演算法
find(vec.begin(), vec.end(), ival);
find_first_of(vec1.begin(), vec1.end(),vec2.begin(),vec2.end());
accumulate(vec.begin(), vec.end(), ival); // 第三個實參提供累加初始值和關聯的型別
//寫入運算不檢查目標的大小是否滿足寫入的數目
fill(vec.begin(), vec.end(), 0); // 是寫入安全的
fill_n(vec.begin(), 2, 0); // 前兩個元素賦為0 ,必須保證vec至少有2個元素,否則執行錯
fill_n(back_inserter(vec),2, 0); // 相當於在vec後面push_back兩個0
back_inserter是迭代器介面卡
copy(ilst.begin(), ilst.end(),back_inserter(ivec));
replace(ilst.begin(), ilst.end(), 0, 42); // 等於0的元素換成42
replace_copy(ilst.begin(), ilst.end(),back_inserter(vec), 0, 42); // ilst不變,複製到vec中,其中0換成42
sort(vec.begin(), vec.end());
vector::iterator end_unique = unique(words.begin(),word.end()); // 把重複單詞移動到後面去,返回無復下一位置
演算法不改變容器大小,要刪掉重複元素必須使用容器操作 words.erase(end_unique,words.end());
count_if(words.begin(), words.end(), gt6); //函式要求謂詞函式只能乙個引數,即迭代器範圍內的元素
stable_sort(words.begin(), words.end(),isshorter);
以上四五行參考**test統計六個及以上字母組成的單詞.cpp
3. front_inserter使用push_front,這個演算法不能用在vector上,它沒有這個操作
inserter(ilst, it); //指定插入位置, 在it之前插
注意:copy(ilst.begin(), ilst.end(), inserter(ilst2,ilst2.begin()));//正序插入
//每次都在固定位置插入
copy(ilst.begin(),ilst.end(), front_inserter(ilst1));//逆序插入
4. d
list ilst;
for (inti=0; i<5; ++i)
ilst.sort();
printlist(ilst);
ilst.unique(); //
刪掉,而不是後移重複元素
,這不是演算法函式,所以真正修改了基礎容器
// 真正修改基礎容器的還有remove,演算法函式中
remove
是把等於指定值的元素們
// 前移,返回第乙個不等於
val的元素的位置
printlist(ilst);
5.
6. 『
1. 非static成員函式有this. const必須同時出現在定義和宣告中,不然出錯
2. 只有類中有很少的方法且有公有資料時,使用struct,或只有公有資料時。
3. 封裝好處:一,防止使用者級破壞,二,只要介面不變,不須改動使用者級**。 cpp檔案才是類定義檔案
4. 前向宣告是不完全型別,只能用於定義指標或引用(只是定義,不能使用它們來訪問成員),或宣告使用該型別作為形參或返回值的函式。 可以定義該型別的static物件
5. this的型別是乙個指向類型別的const指標。
const成員函式只能返回*this作為乙個const引用:對於返回*this或this的函式,const若有則必同時有
const dog* run1() const // const成員函式中,this是指向const物件的const指標,函式返回型別必須是const的
const dog& run2() const // const成員函式中,*this是const物件,返回值只能是乙個const的引用
6. 基於成員函式是否const可以過載,基於形參是否指向const物件可以過載。const物件使用const成員。
7. 可變資料成員mutable,這樣const成員函式可以改變它或它是const物件的成員時也可改
8. 形參表和函式體處於類作用域中
char screen::get(indexr, index c) const 的方式初始化
struct data ;
11. 友元可以是非成員函式,可以是已知類的成員函式,也可以是類
12. 若要將成員函式定義為inline,則宣告的時候可以不必寫inline,它是用於定義的關鍵字。定義為inline
學習筆記 專題1 1 1 2
專題1 1 matlab系統環境 當命令語句一行寫不下時,可用 作為續行符 clear命令,可清除工作區的所有變數,用clc命令時可以清除介面的所有內容 新建乙個資料夾的方法 cd c lxdm 按enter鍵即可 當變數名與系統函式相同時,優先呼叫的是變數。如 設定檔案搜素路徑 1 2 matla...
C Primer學習筆記
學習完乙個知識點後寫上自己的理解。算是總結吧,加深一下自己的印象,也可以在以後複習的時候方便檢視 加油加油!14.1關於運算子的過載 存在的意義 目前看來就是因為操作符大部分是針對資料的,比如int型,char型,書中稱為內建型別。而當類之間想要用操作符的時候,比如兩個類的物件相加,那麼就需要去重 ...
《C Primer》學習筆記
2008年7月18日 颱風海鷗登陸 1 宣告與定義 變數的定義用於為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,變數有且僅有乙個定義。變數的宣告用於向程式表明變數的型別和名字。變數的宣告包括物件名 物件型別和物件型別前的關鍵字extern 當設計標頭檔案時,記住定義和宣告的區別是很重要的...