原创 C++格式化輸出

一、綜述 cout是STL庫提供的一個iostream實例,擁有ios_base基類的全部函數和成員數據。 進行格式化操作可以直接利用setf/unsetf函數和flags函數。 cout維護一個當前的格式狀態,setf/unsetf函數

原创 遞歸

目錄 《一》構造遞歸 《二》遞歸的調用 構造遞歸代碼 《三》遞歸和回溯 更多代碼 《四》遞歸的侷限性  小結 《一》構造遞歸 抓住兩個要點:“相似性”和“出口” 沒有相似性,主動構造 不相似的原因很有可能是缺少參數 類似數學公公式上

原创 階乘計算及優化

任何大於1的自然數n階乘表示方法: n!=1×2×3×……×n  代碼:  # include<iostream> # include<algorithm> using namespace std; //計算階乘 ,遞歸定義

原创 斐波拉切數列的定義及優化

在數學上,費波那契數列是以遞歸的方法來定義: (n≧2) 遞歸算法的原理與侷限性:  待補充  上代碼: # include<iostream> # include<algorithm> const int MAX_N =

原创 STL——map/multimap

map容器和set容器類似,都是基於紅黑樹 map容器存儲鍵值對,並以鍵爲依據排序,不允許重複的鍵。 以對組的方式進行插入 # include<iostream> # include<algorithm> # include<map

原创 STL——算法:查找

用代碼說話: # include<iostream> # include<algorithm> # include<vector> using namespace std; class Person{ public: Pe

原创 STL——set

# include<iostream> # include<algorithm> # include<set> # include<string> using namespace std; #if 0 set/multiset容器

原创 STL——算法:for_each

for_each(iterator,iterator,callback); 前兩個參數列表是遍歷容器的迭代器,第三個參數是對應的回調函數 回調函數的原理都是將參數傳遞至相應的函數體,再進行操作 # include<iostream>

原创 STL——list

鏈表容器,需要注意的是: list由於是鏈表,只能通過cur->nxt訪問先一個結點,所以不支持隨機存取 # include<iostream> # include<algorithm> # include<list> using

原创 STL——stack,queue

stack和queue容器的操作比較簡單,只需要注意他們不提供迭代器,不能隨機訪問即可; # include<iostream> # include<algorithm> # include<stack> # include<que

原创 STL——deque

中文名叫雙端數組,就是比vector多了一個front操作 ,雙口容器。 # include<iostream> # include<algorithm> # include<deque> # include<string> # i

原创 STL——string

要寫的都在代碼裏了:  # include<iostream> # include<algorithm> # include<string> # include<stdexcept> using namespace std; s

原创 STL——vector學習

這個是測試代碼:  # if 0 vector是單口容器 push_back():從尾部添加元素 pop_back():從尾部彈出元素 v.begin():容器的開始指針 v.end():容器的結尾指針 v.rbegin():指向最後一

原创 P1553 數字反轉(升級版)

 題目描述 給定一個數,請將該數各個位上數字反轉得到一個新數。 這次與NOIp2011普及組第一題不同的是:這個數可以是小數,分數,百分數,整數。整數反轉是將所有數位對調;小數反轉是把整數部分的數反轉,再將小數部分的數反轉,不交換整數部分

原创 P1047 校門外的樹

題目描述 某校大門外長度爲L的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是11米。我們可以把馬路看成一個數軸,馬路的一端在數軸00的位置,另一端在LL的位置;數軸上的每個整數點,即0,1,2,…,L0,1,2,…,L,都種有一棵樹。 由於