組合語言
函式模板用來幹嘛?
就是為了解決乙個函式可以對不同型別的引數進行處理; 函式業務邏輯一樣,但是函式引數型別不一樣,也就是乙個通用函式。
函式模組
如:1.
定義乙個函式模板,能完成兩個相同型別資料比較。比較結果分別是 -1,0,1。當第乙個資料小於第二個資料時,返回-1。當第乙個資料等於第二個資料時,返回0。第乙個資料大於第二個資料時,返回1。
輸入輸入四組資料
第一組是兩個整數
第二組是兩個字串
第三組是兩個浮點數
第四組是兩個字串
輸出分別輸出四組資料的比較結果
樣例輸入
1 2a b
2.3 1.5
ab ab
樣例輸出
-1-110
1.分析問題:首先這是乙個很簡單的比較兩個數或者字元甚至字串的大小問題;
2.如何解決問題:在沒接觸函式模組之前是定義多個函式,對相應型別的進行比較,然後通過函式的模組也就是定義乙個函式可以對不同型別引數的比較(比較資料同型別);
3.解題步驟:
1.template告訴c++要進行泛程式設計,看到t不要隨便報錯
2.直接輸入資料然後呼叫函式進行比較即可;
#include
using
namespace std;
template
<
typename t>
intsove
(t a,t b)
intmain()
得到知識:通過函式模組,了解到對不同型別的資料需要做相同方式的處理的解決方式。
2.
定義乙個函式模板 t max_v(t *array, int n),返回陣列array 中的組最大值…
輸入輸入兩組資料
第一組:整數n 及n個整數
第二組:整數n 及n個字串
輸出每組資料的最大值
樣例輸入
51 2 3 4 5
5a b c d e
樣例輸出5e
1.分析問題:找出陣列中的最大值,找最值問題(不只是一種型別的陣列);
2.解決問題:爭對於這種問題用函式模組既可以解決,然後函式就是乙個普通的找最大值的函式(這裡是先進性從小到大排序,然後取出最大值即可);
3.解題步驟:1.經過分析題目得出寫乙個找最大值的函式模板;2.將輸入的資料通過呼叫函式得出結果即可。
#include
#include
using
namespace std;
template
<
typename t>
t max_v
(t *array,
int n)
intmain()
類模板
注意:類中的模板函式在類中定義的方式和類外定義方式的區分。
3.
定義乙個類模板circle ,包含乙個資料成員半徑(型別需要引數化),包含以下成員函式:1. 建構函式(帶參並帶預設值)2. 計算周長(有返回值,double)3. 計算面積(有返回值,double)說明:pi=3.14
輸入圓的半徑
輸出周長和 面積
樣例輸入
12.2
樣例輸出
6.28
3.14
13.816
15.1976
1.分析問題:這就是乙個簡單的類,只是類中的資料成員的型別是不定的,根據不同的成員資料得出相應的資料;
2.解決問題:類中的資料成員r的型別不定,用t申明即可;
3.解題步驟:a.建立類,注意類中資料成員的申明,和建構函式的引數;b.注意定義成員函式的地方及其方式;c.注意不同物件的生成。
#include
using
namespace std;
#define pi 3.14
template
<
typename t>
class
circle
doublezc(
)double
area()
};intmain()
數模組訓練題
題意 給定n個點,求兩個點間最小距離 n 10000 n 2 是肯定過不了的,考慮分治 1 將集合一分為二,求左半邊最小距離,右半邊最小距離,返回兩者較小值 2 以較小值為半徑,以中心點為圓心畫圓,尋找左右兩邊在圓內的點,暴力求距離然後更新答案。很巧妙,很經典 include include inc...
函式模組 POPUP TO DECIDE
函式模組 popup to decide list 這個函式模組可以彈出乙個視窗,根據使用者傳入顯示若干個單 多選按鈕,並將使用者選擇返回。popup to decide list dialog box for choosing from a list without diagnosis 輸入引數如...
8 函式 模組
def functionname parameters 函式 文件字串 function suite return expression python 函式的引數傳遞 引數 匿名函式 python 使用 lambda 來建立匿名函式。全域性變數和區域性變數 定義在函式內部的變數擁有乙個區域性作用域,...