版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
C++模板元編程測試卷```cppinclude<iostream>include<type_traits>//1.定義一個模板結(jié)構(gòu)體,用于判斷一個類型是否為整數(shù)類型template<typenameT>structis_integer{staticconstboolvalue=false;};template<>structis_integer<int>{staticconstboolvalue=true;};template<>structis_integer<long>{staticconstboolvalue=true;};template<>structis_integer<longlong>{staticconstboolvalue=true;};template<>structis_integershort>{staticconstboolvalue=true;};//2.定義一個模板函數(shù),計算兩個整數(shù)的最大值template<typenameT>Tmax(Ta,Tb){returna>b?a:b;}//3.使用SFINAE技術(shù),定義一個模板函數(shù),判斷一個類型是否可以調(diào)用sqrt函數(shù)template<typenameT>std::enable_if_t<std::is_floating_point_v<T>,T>sqrt(Tx){returnx;}//4.定義一個模板類,實現(xiàn)一個簡單的單例模式template<typenameT>classSingleton{public:staticT&instance(){staticTinstance;returninstance;}private:Singleton()=default;~Singleton()=default;Singleton(constSingleton&)=delete;Singleton&operator=(constSingleton&)=delete;};//5.定義一個模板類,實現(xiàn)一個泛型隊列template<typenameT>classQueue{private:std::vector<T>data;public:voidpush(constT&value){data.push_back(value);}voidpop(){if(!empty()){data.erase(data.begin());}}Tfront()const{returndata.front();}Tback()const{returndata.back();}boolempty()const{returndata.empty();}size_tsize()const{returndata.size();}};//6.定義一個模板結(jié)構(gòu)體,用于判斷一個類型是否為標(biāo)準(zhǔn)庫中的容器類型template<typenameT>structis_container{staticconstboolvalue=false;};template<typenameT>structis_container<std::vector<T>>{staticconstboolvalue=true;};template<typenameT>structis_container<std::list<T>>{staticconstboolvalue=true;};template<typenameT>structis_container<std::deque<T>>{staticconstboolvalue=true;};template<typenameT>structis_container<std::set<T>>{staticconstboolvalue=true;};template<typenameT>structis_container<std::map<T>>{staticconstboolvalue=true;};//7.定義一個模板函數(shù),判斷一個類型是否為標(biāo)準(zhǔn)庫中的容器類型template<typenameT>std::enable_if_t<is_container<T>::value,void>check_container(T&container){std::cout<<"It'sacontainer."<<std::endl;}//8.定義一個模板類,實現(xiàn)一個泛型工廠模式template<typenameT>classFactory{public:staticTcreate(){returnT();}};//9.定義一個模板結(jié)構(gòu)體,用于判斷一個類型是否為空類template<typenameT>structis_empty_class{staticconstboolvalue=false;};template<>structis_empty_class<>{staticconstboolvalue=true;};//10.定義一個模板函數(shù),計算兩個數(shù)的和template<typenameT>Tadd(Ta,Tb){returna+b;}intmain(){//測試is_integerstd::cout<<std::boolalpha;std::cout<<"is_integer<int>:"<<is_integer<int>::value<<std::endl;std::cout<<"is_integer<double>:"<<is_integer<double>::value<<std::endl;//測試maxstd::cout<<"max(3,5):"<<max(3,5)<<std::endl;std::cout<<"max(3.5,5.1):"<<max(3.5,5.1)<<std::endl;//測試sqrtstd::cout<<"sqrt(9):"<<sqrt(9)<<std::endl;//測試SingletonSingleton<int>singletonInstance;std::cout<<"Singletoninstancevalue:"<<singletonInstance.instance()<<std::endl;//測試QueueQueue<int>queue;queue.push(1);queue.push(2);queue.push(3);std::cout<<"Queuefront:"<<queue.front()<<std::endl;queue.pop();std::cout<<"Queuefrontafterpop:"<<queue.front()<<std::endl;//測試is_containerstd::vector<int>vec={1,2,3};check_container(vec);intnum=5;check_container(num);//測試Factorystd::cout<<"Factory<int>instance:"<<Factory<int>::create()<<std::endl;//測試is_empty_classstd::cout<<"is_empty_class<EmptyClass>:"<<is_empty_class<Empt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年安徽創(chuàng)新館志愿講解員招募備考題庫及答案詳解參考
- 2026年陜西測繪地理信息局招聘備考題庫(157人)含答案詳解
- 食品生產(chǎn)衛(wèi)生操作規(guī)范(標(biāo)準(zhǔn)版)
- 紡織印染工藝與質(zhì)量控制規(guī)范(標(biāo)準(zhǔn)版)
- 當(dāng)事合同(標(biāo)準(zhǔn)版)
- 未來五年柳木原木企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略分析研究報告
- 未來五年環(huán)境保護投資服務(wù)企業(yè)縣域市場拓展與下沉戰(zhàn)略分析研究報告
- 未來五年糖及原料企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略分析研究報告
- 未來五年新形勢下南沙參類飲片行業(yè)順勢崛起戰(zhàn)略制定與實施分析研究報告
- 教育機構(gòu)財務(wù)管理制度手冊(標(biāo)準(zhǔn)版)
- 海上導(dǎo)管架安裝監(jiān)理細(xì)則
- 保險實務(wù)課程設(shè)計
- JBT 12530.3-2015 塑料焊縫無損檢測方法 第3部分:射線檢測
- 辦公家具投標(biāo)方案(技術(shù)方案)
- 小班數(shù)學(xué)《5以內(nèi)的點數(shù)》課件
- GB/T 10118-2023高純鎵
- 不同治療對多發(fā)性骨髓瘤患者凝血功能及預(yù)后的影響演示稿件
- 預(yù)制箱梁架設(shè)安全技術(shù)交底
- PDCA提高臥床患者踝泵運動鍛煉的正確率
- YB/T 036.10-1992冶金設(shè)備制造通用技術(shù)條件鍛鋼件超聲波探傷方法
- GB/T 29890-2013糧油儲藏技術(shù)規(guī)范
評論
0/150
提交評論