日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

STL1-函数模板

發(fā)布時(shí)間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STL1-函数模板 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?1、函數(shù)模板和普通函數(shù)區(qū)別

//普通函數(shù)可以進(jìn)行自動(dòng)類(lèi)型轉(zhuǎn)換, //函數(shù)模板必須精確類(lèi)型匹配; //函數(shù)模板可以被重載;c++優(yōu)先考慮普通函數(shù);#include<iostream> using namespace std; //函數(shù)模板-->產(chǎn)生模板函數(shù)-->調(diào)用函數(shù) template<class T> T MyAdd(T a, T b) {cout << "調(diào)用函數(shù)模板" << endl;return a + b; } void MyAdd(int a, int b) {cout << "調(diào)用函數(shù)" << endl; } int main() {int a = 10, b = 20;MyAdd(a, b); double da = 1.12, db = 1.14;MyAdd(da, db); MyAdd(2, 'A');return 0; }

運(yùn)行結(jié)果:?

2、函數(shù)模板機(jī)制

?

#include<iostream> using namespace std; //函數(shù)模板-->產(chǎn)生模板函數(shù)-->調(diào)用函數(shù) template<class T> T MyAdd(T a, T b) {return a + b; } int main() {int a = 10, b = 20;MyAdd(a, b); //產(chǎn)生MyAdd(int a,int b)函數(shù)并調(diào)用double da = 1.12, db = 1.14;MyAdd(da,db); //產(chǎn)生MyAdd(double a,double b)函數(shù)并調(diào)用MyAdd(a, a); //直接調(diào)用第一次產(chǎn)生的MyAdd(int a,int b)函數(shù)return 0; }

3、函數(shù)模板應(yīng)用-int類(lèi)型和char類(lèi)型排序

?

#include<iostream> using namespace std; //對(duì)char類(lèi)型和Int類(lèi)型數(shù)組進(jìn)行排序 //void PrintArray(int *arr, int len) //{ // for (int i = 0; i < len; i++) // { // cout << arr[i] << " "; // } // cout << endl; //} template<class T> void PrintArray(T *arr, int len) {for (int i = 0; i < len; i++){cout << arr[i] << " ";}cout << endl; } void MySwap(int &a, int &b) {int temp = a;a = b;b = temp; }//冒泡排序 void MySort(int* arr, int len) {for (int i = 0; i < len; i++){for (int j = 0 ;j < len-i-1; j++){if (arr[j] < arr[j+1])MySwap(arr[j], arr[j+1]);}} } //選擇排序 //void MySort1(int* arr, int len) //{ // for (int i = 0; i < len; i++) // { // for (int j = i+1; j < len; j++) // { // if (arr[i] < arr[j]) // { // int temp = arr[i]; // arr[i] = arr[j]; // arr[j] = temp; // } // } // } //} template<class T> void MySort1(T* arr, int len) {for (int i = 0; i < len; i++){for (int j = i + 1; j < len; j++){if (arr[i] < arr[j]){T temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}} } int main(void) {//數(shù)組int arr[] = { 2,6,1,8,9,2 };//數(shù)組長(zhǎng)度int len = sizeof(arr) / sizeof(int);cout << "排序前:";PrintArray(arr, len);MySort1(arr, len);cout << "排序后:";PrintArray(arr, len);char chArr[] = { 'a','c','f','b','e' };int lench = sizeof(chArr) / sizeof(char); cout << "排序前:";PrintArray(chArr, lench); MySort1(chArr, lench);cout << "排序后:";PrintArray(chArr, lench);return 0; }

總結(jié)

以上是生活随笔為你收集整理的STL1-函数模板的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。