摘要:
兩個(gè)以上的函數(shù),具相同的函數(shù)名,但是形參的個(gè)數(shù)或者形參的類型不同,編譯器根據(jù)實(shí)參的類型及實(shí)參的個(gè)數(shù)最佳匹配,自動(dòng)確定調(diào)用哪一個(gè)函數(shù),這就是函數(shù)的重載。1>. int add(int a, int b) {}2>. int add(int a, int b, int c) {}3>. float add(float a, float b) {}三個(gè)add函數(shù),具體用哪個(gè)一個(gè)重載要做的事情了。
閱讀全文
摘要:
內(nèi)聯(lián)函數(shù)不是在調(diào)用時(shí)發(fā)生控制轉(zhuǎn)移,而是在編譯時(shí)將函數(shù)體嵌入在每一個(gè)調(diào)用處。這樣就節(jié)省了參數(shù)傳遞、控制轉(zhuǎn)移等開銷。View Code #include "iostream"#include "string"using namespace std;inline void print(string Str){ cout<<Str<<endl;}int main(){ string Str; while(cin>>Str) print(Str);}
閱讀全文
摘要:
View Code #include<iostream>using namespace std;int main(){ freopen("God.txt","w", stdout); for(int i=0; i<10000; i++) { cout<<i<<","; if(i%30==0 && i!=0) cout<<endl<<endl; }}上面的freopen就是用來打表的了。無語呀,到現(xiàn)在才明白。第一個(gè)一定是:“文件名.txt”類似的。第二個(gè)一
閱讀全文
摘要:
其實(shí)說白了,拓?fù)渑判蚓褪且粋€(gè)廣度優(yōu)先搜索。拓?fù)渑判虻姆椒ㄈ缦? (1)從有向圖中選擇一個(gè)沒有前驅(qū)(即入度為0)的頂點(diǎn)并且輸出它. (2)從網(wǎng)中刪去該頂點(diǎn),并且刪去從該頂點(diǎn)發(fā)出的全部有向邊. (3)重復(fù)上述兩步,直到剩余的網(wǎng)中不再存在沒有前趨的頂點(diǎn)為止.本題目是采用的鄰接表存儲方法。具體的實(shí)現(xiàn)是用vector數(shù)組。題目:HDU 1285http://acm.hdu.edu.cn/showproblem.php?pid=1285View Code #include "iostream"#include "vector"#include "queue
閱讀全文
摘要:
在求兩個(gè)數(shù)的最大公約數(shù)方法中,輾轉(zhuǎn)相除法是比較快的一種方法。也就是著名的歐幾里德方法。View Code int Gcd(int a, int b){ return b==0?a:gcd(b, a%b);}View Code #include "iostream"#include "cstdio"#include "cstring"#include "string"#include "algorithm"using namespace std;int Gcd(int a, int b)//毆幾里
閱讀全文
摘要:
其實(shí)線段樹的數(shù)據(jù)結(jié)構(gòu)沒什么可說的,但是怎么用好它就有得說了。具體的來說就是:首先就是有段關(guān)系了,這個(gè)是第一位的。接著就是有大小關(guān)系了,這個(gè)是第二位的。再者就是數(shù)據(jù)量大,這個(gè)是次要的。只要滿足了這三個(gè)條件,就是用線段樹的時(shí)候了。如何理解段呢?比如說讓你統(tǒng)計(jì)小于200的數(shù)據(jù)有多少個(gè)。這個(gè)就是段了。至于大小就是小于200的200了。(1)1 3 2 4 5 63 563 23 46 56 23 455 …… 888 這個(gè)例子是落在888以前的。(2)當(dāng)然還是段中段,這個(gè)就不解釋了。下面來貼出一道相關(guān)的題目。http://acm.swust.edu.cn/oj/contest/29/825/View
閱讀全文
摘要:
將數(shù)字字符串轉(zhuǎn)化成整型數(shù)據(jù)我們將用到兩個(gè)函數(shù)。1. c_str它的作用是將string對象轉(zhuǎn)化成char*,為什么要這樣做呢,這就要說起另外一個(gè)函數(shù)了。2.atoi (它是array to integer的縮寫)它的作用是將數(shù)字字符串轉(zhuǎn)化成整型數(shù)據(jù)。但是要注意atoi(const char * s), 這個(gè)是它的標(biāo)準(zhǔn)用法,如果是atoi(string s)這個(gè)就不行了。具體的用法是。View Code string str="-1234";int num = atoi(str.c_str());string str = "1234";int Num =
閱讀全文
摘要:
No.1:用C++輸入帶空格的字符串, getchar()必不可少。cin>>n;getchar();while(n--) getline(cin, s);No.2:不可對string s, char *s, char s[100] 像這種的串一個(gè)字符一個(gè)字符的賦值, 會出現(xiàn)燙燙燙啊。但是可以對char s[100]={0}這樣的字符賦值。
閱讀全文
摘要:
HDU 2660http://acm.hdu.edu.cn/showproblem.php?pid=2660題意就不說了,直接走代碼。View Code #include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>using namespace std;#define max(a, b) (a>b?a:b)int V[21], W[21], Ans, N, K, L, i;void DFS(int p, int vv,
閱讀全文
摘要:
先說一下多重背包問題。他是由完全背包而來的,但是不同的是,他的每件物品有一定的數(shù)量限量,而完全背包中每種物品可以有無限件。HDU 2660http://acm.hdu.edu.cn/showproblem.php?pid=2660題目大意:在N件物品中,最多可以選擇K,在選擇的K件物品中,總?cè)萘坎荒艹^W.求選擇的最大價(jià)值。本題就是一個(gè)任意組合問題了,當(dāng)然除了這種解法以外還有一種解法。那就是DFS了。View Code #include<iostream>#include<cstdio>#include<cstring>#include<string&
閱讀全文