在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    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.

    在編程中,有時(shí)需要多次執(zhí)行某些操作,例如n次。當(dāng)我們需要重復(fù)執(zhí)行一個(gè)語(yǔ)句塊時(shí),就會(huì)使用循環(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)的語(yǔ)法糖,編程語(yǔ)法制定語(yǔ)法規(guī)則,確定如何抽象,編程語(yǔ)言的編譯器實(shí)現(xiàn)抽象的編譯,程序員按規(guī)則寫(xiě)代碼

    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)中,在進(jìn)入循環(huán)體之前測(cè)試測(cè)試條件。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)體的末端測(cè)試或評(píng)估測(cè)試條件。因此,無(wú)論測(cè)試條件是真還是假,循環(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開(kāi)始添加的。它在一個(gè)范圍內(nèi)執(zhí)行for循環(huán)。用作在一系列值(例如容器中的所有元素)上進(jìn)行操作的傳統(tǒng)for循環(huán)的可讀性更強(qiáng)的等價(jià)物。

    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)才能成功運(yù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)犯錯(cuò)的機(jī)會(huì)

    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.

    無(wú)效參數(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),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年8月15日 06:09
    下一篇 2022年8月15日 06:09

    相關(guān)推薦

    • 存儲(chǔ)過(guò)程語(yǔ)法(sql server存儲(chǔ)過(guò)程語(yǔ)法)

      今天小編給各位分享存儲(chǔ)過(guò)程語(yǔ)法的知識(shí),其中也會(huì)對(duì)sql server存儲(chǔ)過(guò)程語(yǔ)法進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧! oracle存儲(chǔ)過(guò)程基本語(yǔ)法…

      2022年11月26日
    • 客服的崗位職責(zé)怎么寫(xiě)(客服工作內(nèi)容及職責(zé))

      各位小伙伴們大家周一好,又到了每周一給大家分享干貨內(nèi)容的時(shí)候啦~ 本期來(lái)跟大家分享一下客服工作管理流程以及客服崗位里面的每項(xiàng)職能崗位的核心細(xì)則,也是干貨滿滿推薦收藏~ 一.補(bǔ)償流程…

      2022年11月25日
    • 小紅書(shū)入駐條件及費(fèi)用(小紅書(shū)開(kāi)店)

      小紅書(shū)喊你回家開(kāi)店! 有不少用戶都發(fā)現(xiàn),最近在逛小紅書(shū)的時(shí)候,筆記上面多出了一個(gè)圖片標(biāo)簽,點(diǎn)進(jìn)入之后便可進(jìn)入下單頁(yè)面,還可以通過(guò)商品頁(yè)面找到相關(guān)店鋪,大大縮短了交易路徑。 “很方便…

      2022年11月23日
    • 寬帶測(cè)速軟件(手機(jī)寬帶測(cè)速軟件)

      中國(guó)聯(lián)通用戶可登錄中國(guó)聯(lián)通網(wǎng)上營(yíng)業(yè)廳,選擇寬帶寬帶服務(wù)寬帶測(cè)速,按頁(yè)面指導(dǎo)進(jìn)行測(cè)速,測(cè)速時(shí)建議您直連電腦,如測(cè)速結(jié)果無(wú)法達(dá)到簽約速率,您可通過(guò)中國(guó)聯(lián)通APP,“服務(wù)報(bào)障在線報(bào)障”進(jìn)…

      2022年11月22日
    • 重慶高風(fēng)險(xiǎn)區(qū)一般多長(zhǎng)時(shí)間解除(重慶成都是高風(fēng)險(xiǎn)區(qū)嗎)

      重慶這幾天的疫情新增情況也是比較嚴(yán)重的,大家對(duì)近期的重慶疫情防控措施也都十分關(guān)注,據(jù)悉目前重慶還存在不少的疫情高風(fēng)險(xiǎn)地區(qū)。那么,重慶高風(fēng)險(xiǎn)區(qū)一般多長(zhǎng)時(shí)間解除?對(duì)于高風(fēng)險(xiǎn)地區(qū)解封時(shí)間…

      2022年11月21日
    • 面包車加入貨拉拉有什么條件(面包車?yán)浧脚_(tái))

      現(xiàn)在大家可以看到各種貨拉拉的車在大街小巷穿梭,同城配送都會(huì)選擇貨拉拉搬運(yùn),其中面包車是非常常見(jiàn)的一種,一些小伙伴也想加入貨拉拉賺錢(qián),那么面包車加入貨拉拉有什么條件?下面小編為大家?guī)А?/p>

      2022年11月21日
    • 馬斯克凌晨一點(diǎn)半曬“代碼審查”現(xiàn)場(chǎng),編排他的段子比瘋狂星期四還多

      夢(mèng)晨 Pine 發(fā)自 凹非寺 量子位 | 公眾號(hào) QbitAI 每一個(gè)真正會(huì)寫(xiě)代碼的人,請(qǐng)?jiān)谙挛?點(diǎn)到總部10層報(bào)到。 每一個(gè)真正會(huì)寫(xiě)代碼的人,請(qǐng)?jiān)谙挛?點(diǎn)到總部10層報(bào)到。 馬斯…

      2022年11月21日
    • wish個(gè)人開(kāi)店流程及費(fèi)用(wish平臺(tái)入駐條件)

      隨著電商行業(yè)的發(fā)展,不少國(guó)內(nèi)賣(mài)家轉(zhuǎn)戰(zhàn)國(guó)外,可以說(shuō)知名不知名的電商平臺(tái)都有了中國(guó)賣(mài)家的身影,wish也不例外,今天我們就來(lái)說(shuō)說(shuō)wish平臺(tái)入駐條件,讓大家有備無(wú)患。 想要在一個(gè)平臺(tái)上…

      2022年11月21日
    • 軟件開(kāi)發(fā)階段的6大劃分詳解(需求規(guī)格說(shuō)明書(shū)在哪個(gè)階段)

      1計(jì)劃 對(duì)所要解決的問(wèn)題進(jìn)行總體定義,包括了解用戶的要求及現(xiàn)實(shí)環(huán)境,從技術(shù)、經(jīng)濟(jì)和社會(huì)因素等3個(gè)方面研究并論證本軟件項(xiàng)目的可行性,編寫(xiě)可行性研究報(bào)告,探討解決問(wèn)題的方案,并對(duì)可供使…

      2022年11月19日
    • 抖音黃v認(rèn)證的條件是什么 抖音黃v和藍(lán)v的區(qū)別有何不同

      經(jīng)常玩抖音的小伙伴們會(huì)發(fā)現(xiàn)抖音上有黃v,還有藍(lán)v,那大家知道這個(gè)抖音黃色標(biāo)志是什么意思?黃v和藍(lán)v的區(qū)別是什么呢?什么情況上需要去申請(qǐng)黃v呢?下面就和小編一起來(lái)看看吧。 抖音黃v認(rèn)…

      2022年11月18日

    聯(lián)系我們

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