pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

<i id='Qykfw'><tr id='Qykfw'><dt id='Qykfw'><q id='Qykfw'><span id='Qykfw'><b id='Qykfw'><form id='Qykfw'><ins id='Qykfw'></ins><ul id='Qykfw'></ul><sub id='Qykfw'></sub></form><legend id='Qykfw'></legend><bdo id='Qykfw'><pre id='Qykfw'><center id='Qykfw'></center></pre></bdo></b><th id='Qykfw'></th></span></q></dt></tr></i><div class="p1597ph" id='Qykfw'><tfoot id='Qykfw'></tfoot><dl id='Qykfw'><fieldset id='Qykfw'></fieldset></dl></div>

<small id='Qykfw'></small><noframes id='Qykfw'>

      • <bdo id='Qykfw'></bdo><ul id='Qykfw'></ul>

        <tfoot id='Qykfw'></tfoot>
      1. <legend id='Qykfw'><style id='Qykfw'><dir id='Qykfw'><q id='Qykfw'></q></dir></style></legend>

        c++ 模板類;具有任意容器類型的函數,如何定義

        c++ template class; function with arbitrary container type, how to define it?(c++ 模板類;具有任意容器類型的函數,如何定義它?)

          <small id='UQcvy'></small><noframes id='UQcvy'>

          1. <tfoot id='UQcvy'></tfoot>
              <tbody id='UQcvy'></tbody>
            • <bdo id='UQcvy'></bdo><ul id='UQcvy'></ul>
              <i id='UQcvy'><tr id='UQcvy'><dt id='UQcvy'><q id='UQcvy'><span id='UQcvy'><b id='UQcvy'><form id='UQcvy'><ins id='UQcvy'></ins><ul id='UQcvy'></ul><sub id='UQcvy'></sub></form><legend id='UQcvy'></legend><bdo id='UQcvy'><pre id='UQcvy'><center id='UQcvy'></center></pre></bdo></b><th id='UQcvy'></th></span></q></dt></tr></i><div class="zfrbr55" id='UQcvy'><tfoot id='UQcvy'></tfoot><dl id='UQcvy'><fieldset id='UQcvy'></fieldset></dl></div>
                • <legend id='UQcvy'><style id='UQcvy'><dir id='UQcvy'><q id='UQcvy'></q></dir></style></legend>

                • 本文介紹了c++ 模板類;具有任意容器類型的函數,如何定義它?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  限時送ChatGPT賬號..

                  好的,簡單的模板問題.假設我像這樣定義我的模板類:

                  template類 foo {上市:foo(T const& first, T const& second) : first(first), second(second) {}模板void bar(C& 容器,T const& baz){//...}私人的:第一;T秒;}

                  問題是關于我的 bar 函數...我需要它能夠使用某種標準容器,這就是為什么我包含模板/類型名稱 C 部分來定義該容器類型.但顯然這不是正確的方法,因為我的測試班然后抱怨:

                  錯誤:'bar' 未在此范圍內聲明

                  那么我將如何以正確的方式實現我的欄功能?也就是說,作為我的模板類的一個函數,具有任意容器類型......我的模板類的其余部分工作正常(具有不會導致錯誤的其他函數),這只是一個有問題的函數.

                  好的,所以特定函數(bar)是一個 eraseInRange 函數,它擦除指定范圍內的所有元素:

                  void eraseInRange(C& container, T const& firstElement, T const& secondElement) {...}

                  一個如何使用它的例子是:

                  eraseInRange(v, 7, 19);

                  在這種情況下,v 是一個向量.

                  編輯 2:傻我!我應該在我的班級之外聲明這個函數,而不是在里面……這是一個非常令人沮喪的錯誤.無論如何,感謝大家的幫助,雖然問題有點不同,但這些信息確實幫助我構建了函數,因為在找到我原來的問題后,我確實遇到了其他一些令人愉快的錯誤.所以謝謝你!

                  解決方案


                  特征解決方案.

                  概括不要超過需要,不要少于.

                  在某些情況下,該解決方案可能還不夠,因為它會匹配具有此類簽名的任何模板(例如 shared_ptr),在這種情況下,您可以使用 type_traits,非常像 duck-typing(模板通常是鴨式的).

                  #include //Helper 判斷是否有一個用于 T 的 const_iterator.模板結構 has_const_iterator{私人的:模板靜態字符測試(類型名 C::const_iterator*);模板靜態整數測試(...);上市:枚舉 { value = sizeof(test(0)) == sizeof(char) };};//bar() 是為也定義了 const_iterator 的容器定義的//作為 value_type.模板 typename std::enable_if::value,無效>::類型bar(const Container &c, typename Container::value_type const & t){//注意:不需要對 value_type 進行額外檢查,檢查是為了//已經在函數簽名中釋放了.}模板 類DoesNotHaveConstIterator {};#include <向量>int主(){std::vectorC;酒吧 (c, 1.2f);DoesNotHaveConstIterator乙;酒吧 (b, 1.2f);//正確編譯失敗}

                  一個好的模板通常不會人為地限制它們有效的類型(為什么要?).但是想象一下,在上面的示例中,您需要訪問對象 const_iterator,然后您可以使用 SFINAE 和 type_traits 將這些約束放在您的函數上.


                  或者只是像標準庫那樣

                  概括不要超過需要,不要少于.

                  template void bar (Iter it, Iter end) {for (; it!=end; ++it) {/*...*
                                  
                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Why do two functions have the same address?(為什么兩個函數的地址相同?)
                  Why the initializer of std::function has to be CopyConstructible?(為什么 std::function 的初始化程序必須是可復制構造的?)
                  mixing templates with polymorphism(混合模板與多態性)
                  When should I use the keyword quot;typenamequot; when using templates(我什么時候應該使用關鍵字“typename?使用模板時)
                  Dependent name resolution amp; namespace std / Standard Library(依賴名稱解析命名空間 std/標準庫)
                  gcc can compile a variadic template while clang cannot(gcc 可以編譯可變參數模板,而 clang 不能)

                  • <small id='LWxkP'></small><noframes id='LWxkP'>

                        <bdo id='LWxkP'></bdo><ul id='LWxkP'></ul>
                        <tfoot id='LWxkP'></tfoot>
                      • <legend id='LWxkP'><style id='LWxkP'><dir id='LWxkP'><q id='LWxkP'></q></dir></style></legend>

                          <i id='LWxkP'><tr id='LWxkP'><dt id='LWxkP'><q id='LWxkP'><span id='LWxkP'><b id='LWxkP'><form id='LWxkP'><ins id='LWxkP'></ins><ul id='LWxkP'></ul><sub id='LWxkP'></sub></form><legend id='LWxkP'></legend><bdo id='LWxkP'><pre id='LWxkP'><center id='LWxkP'></center></pre></bdo></b><th id='LWxkP'></th></span></q></dt></tr></i><div class="v5ljlz7" id='LWxkP'><tfoot id='LWxkP'></tfoot><dl id='LWxkP'><fieldset id='LWxkP'></fieldset></dl></div>
                              <tbody id='LWxkP'></tbody>
                            主站蜘蛛池模板: 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | DAIKIN电磁阀-意大利ATOS电磁阀-上海乾拓贸易有限公司 | 环球周刊网| 江苏大隆凯科技有限公司 | 雷达液位计_超声波风速风向仪_雨量传感器_辐射传感器-山东风途物联网 | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 上海乾拓贸易有限公司-日本SMC电磁阀_德国FESTO电磁阀_德国FESTO气缸 | 创客匠人-让IP变现不走弯路| 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 无水硫酸铝,硫酸铝厂家-淄博双赢新材料科技有限公司 | 郑州律师咨询-郑州律师事务所_河南锦盾律师事务所 | 高低温老化试验机-步入式/低温恒温恒湿试验机-百科 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 精密光学实验平台-红外粉末压片机模具-天津博君 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 真空吸污车_高压清洗车厂家-程力专用汽车股份有限公司官网 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 江苏农村商业银行招聘网_2024江苏农商行考试指南_江苏农商行校园招聘 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 高温高压釜(氢化反应釜)百科 | 全自动不干胶贴标机_套标机-上海今昂贴标机生产厂家 | 磁力轮,磁力联轴器,磁齿轮,钕铁硼磁铁-北京磁运达厂家 | 防水试验机_防水测试设备_防水试验装置_淋雨试验箱-广州岳信试验设备有限公司 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 餐饮小吃技术培训-火锅串串香培训「何小胖培训」_成都点石成金[官网] | 闪电优家-卫生间防水补漏_酒店漏水渗水维修_防水堵漏公司 | 布袋式除尘器|木工除尘器|螺旋输送机|斗式提升机|刮板输送机|除尘器配件-泊头市德佳环保设备 | 法钢特种钢材(上海)有限公司 - 耐磨钢板、高强度钢板销售加工 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 电缆隧道在线监测-智慧配电站房-升压站在线监测-江苏久创电气科技有限公司 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 雷冲击高压发生器-水内冷直流高压发生器-串联谐振分压器-武汉特高压电力科技有限公司 | 橡胶接头|可曲挠橡胶接头|橡胶软接头安装使用教程-上海松夏官方网站 |