題目:
第一眼肯定是覺得小意思,隨便寫個
int add(int a,int b)
這種寫法有很明顯的缺陷,引數傳進來會複製乙份,然而我們可以優化一下,例如說指標?
int add(int *a,int *b)
在c++有更好的方法,例如引用,呼叫時就不需要書寫&號了~
int add(int &a,int &b)
有可能傳入的是常量呢,那麼必定報錯,所以加上乙個const宣告,令其變為右值引用
int add(const int &a,const int &b)
這種簡短的函式我們最好讓它成為內聯函式,畢竟效率比較快
inline int add(const int &a, const int &b)
唔或許這題說的是模版函式?
templateinline t add(const t &a, const t &b)
ok~!到這步基本上就夠用了我們來呼叫一下
int sum = add(1,5);
什麼你就是這樣呼叫的?不知道這樣浪費時間麼,由於函式返回時會建立乙個副本,所以我們可以利用右值引用使返回所建立的副本生存期延長
int && sum = add(1,5);
如果希望返回的值不可改變可以這樣
const int & sum = add(1,5);
所以我們可以這樣寫
#include using namespace std;
templateinline t add(const t &a, const t &b)
int main(int argc, char *argv)
乙個小題目
看到一道題目,自己嘗試了一下 編寫乙個在1,2,9 順序不能變 數字之間插入 或 或什麼都不插入,使得計算結果總是100的程式,並輸出所有的可能性。例如 1 2 34 5 67 8 9 100.首先要考慮所有的可能性,每兩個數字間有3種可能,一共有3的8次方種可能。這樣就能通過遍歷實現。void v...
原型的乙個小題目
題目要求 建立乙個shape物件,該物件有乙個type屬性和gettype 方法 定義乙個原型為shape的 建構函式,用 建立的物件應有三個物件屬性 a b c,分別用於表示三角形的三條邊 在物件原型中新增乙個名為getperimeter 的新方法,用下面的 來進行測試 var t new 1,2...
統計的乙個小題目python實現
最近面試碰到的乙個題目,業餘時間用python實現的。拿到資料,先用sort 命令排序,也可再進一步去重複 sort k 1,2 data.txt uniq data.new 1 coding utf 8 23 第乙個欄位是使用者uid,第二個欄位是商品tid,統計每個商品的使用者購買數量 4imp...