免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      C++的四類循環(huán):Entry or Exit controlled, Ranged-based or For_each

      In programming, sometimes there is a need to perform some operation more than once or (say) n number of times. Loops come into use when we need to repeatedly execute a block of statements.

      在編程中,有時需要多次執(zhí)行某些操作,例如n次。當(dāng)我們需要重復(fù)執(zhí)行一個語句塊時,就會使用循環(huán)。

      4 types of loops:

      ① Entry Controlled loops: while loop, for loop

      ② Exit Controlled Loops:

      ③ Range-based for loop

      ④ For_each loop

      可以理解后兩種循環(huán)是前兩種循環(huán)的語法糖,編程語法制定語法規(guī)則,確定如何抽象,編程語言的編譯器實現(xiàn)抽象的編譯,程序員按規(guī)則寫代碼。

      1 Entry Controlled loops

      In this type of loop, the test condition is tested before entering the loop body. For Loop and While Loop is entry-controlled loops.

      在這種類型的循環(huán)中,在進入循環(huán)體之前測試測試條件。For循環(huán)和While循環(huán)是入口控制循環(huán)。

      1.1 for loop

      #include int main(){ int i=0; for (i = 1; i <= 10; i++) { printf( "Hello World"); } return 0;}

      1.2 while loop

      #include int main(){ // initialization expression int i = 1; // test expression while (i < 6) { printf( "Hello World"); // update expression i++; } return 0;}

      2 Exit Controlled Loops:

      In this type of loop the test condition is tested or evaluated at the end of the loop body. Therefore, the loop body will execute at least once, irrespective of whether the test condition is true or false. the do-while loop is exit controlled loop.

      在這種類型的循環(huán)中,在循環(huán)體的末端測試或評估測試條件。因此,無論測試條件是真還是假,循環(huán)體將至少執(zhí)行一次。do while循環(huán)是出口控制循環(huán)。

      #include int main(){ int i = 2; // Initialization expression do { // loop body printf( “Hello World”); // update expression i++; } while (i < 1); // test expression return 0;}

      3 Range-based for loop

      Range-based for loop in C++ is added since C++ 11. It executes a for loop over a range. Used as a more readable equivalent to the traditional for loop operating over a range of values, such as all elements in a container.

      C++中基于范圍的for循環(huán)是從C++11開始添加的。它在一個范圍內(nèi)執(zhí)行for循環(huán)。用作在一系列值(例如容器中的所有元素)上進行操作的傳統(tǒng)for循環(huán)的可讀性更強的等價物。

      syntax:

      for ( range_declaration : range_expression ) loop_statementParameters :range_declaration : a declaration of a named variable, whose type is the type of the element of the sequence represented by range_expression, or a reference to that type.Often uses the auto specifier for automatic type deduction.range_expression : any expression that represents a suitable sequence or a braced-init-list.loop_statement : any statement, typically a compound statement, whichis the body of the loop.

      code demo:

      #include #include #include int main() { // Iterating over whole array std::vector v = {0, 1, 2, 3, 4, 5}; for (auto i : v) std::cout << i << ' '; std::cout << ''; // the initializer may be a braced-init-list for (int n : {0, 1, 2, 3, 4, 5}) std::cout << n << ' '; std::cout << ''; // Iterating over array int a[] = {0, 1, 2, 3, 4, 5}; for (int n : a) std::cout << n << ' '; std::cout << ''; // Just running a loop for every array // element for (int n : a) std::cout << "In loop" << ' '; std::cout << ''; // Printing string characters std::string str = "Geeks"; for (char c : str) std::cout << c << ' '; std::cout << ''; // Printing keys and values of a map std::map MAP({{1, 1}, {2, 2}, {3, 3}}); for (auto i : MAP) std::cout << '{' << i.first << ", " << i.second << "}";}

      4 for_each loop

      This loop is defined in the header file “algorithm”: #include, and hence has to be included for successful operation of this loop.

      該循環(huán)在頭文件“算法”中定義:#include algorithm ,因此必須包含該循環(huán)才能成功運行。

      It is versatile, i.e. Can work with any container.

      它是多功能的,即可以與任何容器一起工作。

      It reduces chances of errors one can commit using generic for loop

      它減少了使用泛型for循環(huán)犯錯的機會

      It makes code more readable

      它使代碼更具可讀性

      for_each loops improve overall performance of code

      for_ each循環(huán)提高了代碼的整體性能

      syntax:

      for_each (InputIterator start_iter, InputIterator last_iter, Function fnc)start_iter : The beginning position from where function operations has to be executed.last_iter : The ending position till where function has to be executed.fnc/obj_fnc : The 3rd argument is a function or an object function which operation would be applied to each element.

      code demo:

      #include#include#includeusing namespace std; // helper function 1void printx2(int a){ cout << a * 2 << " ";} // helper function 2// object type functionstruct Class2{ void operator() (int a) { cout << a * 3 << " "; }} ob1; int main(){ // initializing array int arr[5] = { 1, 5, 2, 4, 3 }; cout << "Using Arrays:" << endl; // printing array using for_each // using function cout << "Multiple of 2 of elements are : "; for_each(arr, arr + 5, printx2); cout << endl; // printing array using for_each // using object function cout << "Multiple of 3 of elements are : "; for_each(arr, arr + 5, ob1); cout << endl; // initializing vector vector arr1 = { 4, 5, 8, 3, 1 }; cout << "Using Vectors:" << endl; // printing array using for_each // using function cout << "Multiple of 2 of elements are : "; for_each(arr1.begin(), arr1.end(), printx2); cout << endl; // printing array using for_each // using object function cout << "Multiple of 3 of elements are : "; for_each(arr1.begin(), arr1.end(), ob1); cout << endl;}

      Invalid arguments may leads to Undefined behavior.

      無效參數(shù)可能導(dǎo)致未定義的行為。

      For_each can not work with pointers of an array (An array pointer do not know its size, for_each loops will not work with arrays without knowing the size of an array).

      For_ each不能處理數(shù)組指針(數(shù)組指針不知道其大小,F(xiàn)or_each循環(huán)在不知道數(shù)組大小的情況下不能處理數(shù)組)。

      ref

      https://www.geeksforgeeks.org/loops-in-c-and-cpp

      -End-

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      (0)
      用戶投稿
      上一篇 2022年8月15日 06:09
      下一篇 2022年8月15日 06:09

      相關(guān)推薦

      • 英特爾放出Arc A770M顯卡測試成績,游戲性能比RTX 3060筆記本版更強?

        英特爾在近日已經(jīng)上市了Arc A380獨立顯卡,不過那是定位千元級別的入門級游戲卡,大家應(yīng)該更想知道在主流和更高端級別,英特爾又能否與AMD、NVIDIA一戰(zhàn)。目前英特爾還沒有透露…

        2022年6月28日
      • Python還迷茫?《python背計手冊》6天入門,開放下載

        不吃香菜79572022-06-17 14:34 大佬用了88小時整理出的這本《python背記手冊》,把所有的基礎(chǔ)知識點和語法全部編寫進去了,現(xiàn)在我分享出來! 文末驚喜,記得看完…

        2022年6月20日
      • 致曾穎-呂麗萍們

        你可以媚外 你可以表達你那為中國人不恥的情感 你做任何事 你說任何話 我都無權(quán)干涉 我也不屑于憤怒 我只有一個條件 我只有一個前提 那就是 放棄你中國國籍 不要對任何說“你是中國人…

        2022年7月11日
      • 為什么有本事的總是干不過能力平庸的?

        為什么有本事的總是干不過能力平庸的? 這話說起來似乎本就是矛盾的——你干不過別人又怎么說你有本事呢? 其實問題就出在這個“干”字上! 人們在小的時候,由于處于成長階段,能力高低的體…

        2022年6月7日
      • 如何優(yōu)雅的寫 Controller 層代碼?

        # 前言 本篇主要要介紹的就是controller層的處理,一個完整的后端請求由4部分組成: 1. 接口地址(也就是URL地址) 2. 請求方式(一般就是get、set,當(dāng)然還有p…

        2022年6月19日
      • 預(yù)言的魅力-發(fā)現(xiàn)我們身邊的“預(yù)言家”(第三篇)

        由于氣候的變化,加上人類不斷對地球資源的無序開發(fā),大自然受到了前所未有的破壞與踐踏,很多動植物都頻臨滅絕,生態(tài)失衡,災(zāi)害不斷。再加上列強對資源的強取豪奪,令地球的傷害性更大,最終必…

        2022年8月23日
      • 今年起新車將強制安裝EDR系統(tǒng)

        此前,工信部新修改的《機動車運行安全技術(shù)條件》中,要求從2022年1月起新生產(chǎn)的乘用車必須配備EDR系統(tǒng)——即行車事件記錄器,這個被稱為汽車的裝置,可以記錄前后的車輛運行數(shù)據(jù)。 未…

        2022年7月13日
      • 名下有房貸還能用公積金貸款買房嗎 答案在這里

        現(xiàn)在很多人通過申請抵押貸款買房。然而,目前有三種抵押貸款類型,即公積金貸款、銀行商業(yè)貸款和組合貸款。不同類型的抵押貸款申請條件有一定的差異。那么名下有房貸還能用公積金貸款買房嗎?答…

        2022年9月28日
      • 六級難度是4級的幾倍(六級分值明細)

        受疫情影響,原定于2022年6月11日的大學(xué)英語四六級考試延期于9月17日。時至今日,也僅剩19天的時間,下面為大家獻上9月四六級考試的分值明細,助力大家更為科學(xué)的備考。 1短篇新…

        2022年11月16日
      • 經(jīng)濟適用房可以申請貸款嗎 看完可以幫到你!

        經(jīng)濟適用房是一種保障性住房,其售價要比一般的商品房低,需要符合一定條件才能購買,很多人對此的認識不多,那么經(jīng)濟適用房可以申請貸款嗎?下文就來帶大家了解一下。 經(jīng)濟適用房是可以申請貸…

        2022年9月17日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息