1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      C++lambda表達(dá)式-創(chuàng)新互聯(lián)

      C++11新標(biāo)準(zhǔn)引入lambda表達(dá)式,主要部分如下:

      創(chuàng)新互聯(lián)公司一直在為企業(yè)提供服務(wù),多年的磨煉,使我們?cè)趧?chuàng)意設(shè)計(jì),全網(wǎng)整合營(yíng)銷推廣到技術(shù)研發(fā)擁有了開(kāi)發(fā)經(jīng)驗(yàn)。我們擅長(zhǎng)傾聽(tīng)企業(yè)需求,挖掘用戶對(duì)產(chǎn)品需求服務(wù)價(jià)值,為企業(yè)制作有用的創(chuàng)意設(shè)計(jì)體驗(yàn)。核心團(tuán)隊(duì)擁有超過(guò)十多年以上行業(yè)經(jīng)驗(yàn),涵蓋創(chuàng)意,策化,開(kāi)發(fā)等專業(yè)領(lǐng)域,公司涉及領(lǐng)域有基礎(chǔ)互聯(lián)網(wǎng)服務(wù)西云機(jī)房app開(kāi)發(fā)定制、手機(jī)移動(dòng)建站、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)整合營(yíng)銷。

          [捕獲列表](參數(shù))->type{函數(shù)體},使用尾置返回類型,其中可以忽略參數(shù)與返回類型,但要保存捕獲列表與函數(shù)體,使用調(diào)用運(yùn)算符調(diào)用,可在(參數(shù))后添加mutable限定符使值捕獲的數(shù)據(jù)可在函數(shù)體里修改。

          使用lambda表達(dá)式時(shí),編譯器會(huì)產(chǎn)生未命名類的未命名對(duì)象,且有一個(gè)調(diào)用運(yùn)算符成員函數(shù),實(shí)際使用時(shí)會(huì)調(diào)用該調(diào)用運(yùn)算符成員函數(shù)。該未命名類不包含默認(rèn)構(gòu)造函數(shù)、賦值運(yùn)算符、默認(rèn)析構(gòu)函數(shù),而是否包含默認(rèn)的拷貝、移動(dòng)構(gòu)造函數(shù)與捕獲數(shù)據(jù)成員類型有關(guān)。

          [捕獲列表]

          表示外部捕獲的數(shù)據(jù),會(huì)將外部數(shù)據(jù)通過(guò)構(gòu)造函數(shù)傳入未命名類里,可使用值傳遞與引用傳遞,值傳遞:auto Lambda = [intVal](){cout << intVal << endl;}; Lambda();,默認(rèn)intVal為const類型,且該調(diào)用運(yùn)算符是const成員函數(shù),不可修改intVal,如果需要修改則在(參數(shù))后添加限定符mutable:

      auto Lambda = [intVal]()mutable{cout << ++intVal << endl;}; Lambda();,此時(shí)intVal可修改,且調(diào)用運(yùn)算符成員函數(shù)是非const函數(shù)。值傳遞不會(huì)改變外部數(shù)據(jù)。

          引用傳遞:auto Lambda = [&intVal](){cout << ++intVal << endl;}; Lambda();,引用傳遞是否被修改取決于intVal是否為const類型,如果被修改則會(huì)同時(shí)修改外部數(shù)據(jù)。

          可使用隱式的值、引用傳遞,其捕獲的數(shù)據(jù)可通過(guò)編譯器在函數(shù)體的推導(dǎo)得出:auto Lambda = [=,&intVal](){cout << (data+intVal) << endl;}; Lambda();,其中data為隱式值傳遞;auto Lambda = [&](){cout << (data-intVal) << endl; func();}; Lambda();,其中data,intVal都是隱式引用傳遞,同時(shí)調(diào)用了func函數(shù)。如果使用隱式傳遞則要求=、&要在捕獲列表的首位置,同時(shí)之后的顯式捕獲不可為隱式捕獲的傳遞方式。

          注:如果是在類內(nèi)使用并調(diào)用類內(nèi)數(shù)據(jù),則可以使用[=]、[&]、[this]方式隱式或顯式捕獲this并使用類內(nèi)成員,如果是類靜態(tài)成員可以直接使用而不用捕獲。

          (參數(shù))

      接收外部參數(shù),與普通調(diào)用類似:auto Lambda = [](int val){cout << ++val << endl;}; Lambda(1);。匿名函數(shù)是可調(diào)用對(duì)象,可作為比較函數(shù)傳入:

      // main.cpp
      #include 
      #include 
      using std::cout;
      using std::ends;
      using std::sort;
      using std::string;
      using std::begin;
      using std::end;
      
      int main()
      {
          string arr[] = {"123","12345","1233","1233345"};
          sort(begin(arr),end(arr),[]
                    (const string &s1,const string &s2)
                    {
                        return s1.size() > s2.size(); // 按照字符串的大小逆序排序
                    }
                   );
          for (const auto &each : arr)
          {
              cout << each << ends;
          }
          return 0;
      }

          ->type為尾置返回類型,可省略,如果有多個(gè)return且返回類型不一致,則需要指明返回類型:

      // main.cpp
      #include 
      using std::cout;
      using std::ends;
      
      int main()
      {
          auto Lambda = [](int choice)->char
          {
              if (choice == 0)
              {
                  return 0x41; // 'A'
              }
              else
              {
                  return '1';
              }
          };
          cout << Lambda(0) << ends;
          return 0;
      }

          {函數(shù)體},這個(gè)應(yīng)該很熟悉

          以上是對(duì)lambda表達(dá)式的介紹,如有錯(cuò)誤望交流指正。

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


      分享文章:C++lambda表達(dá)式-創(chuàng)新互聯(lián)
      文章源于:http://www.ef60e0e.cn/article/ggeso.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        中山市| 民县| 融水| 红原县| 平顶山市| 炉霍县| 德州市| 宕昌县| 弥渡县| 西华县| 工布江达县| 黄冈市| 肃北| 吴桥县| 虎林市| 巢湖市| 乐业县| 温宿县| 阿拉善左旗| 伊川县| 仪征市| 祥云县| 长阳| 大安市| 巴林右旗| 县级市| 安平县| 盐城市| 新建县| 开封市| 昔阳县| 共和县| 吴江市| 湘潭县| 读书| 建瓯市| 尤溪县| 晋宁县| 那坡县| 封开县| 灵宝市|