亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                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次。當我們需要重復執(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ù)可能導致未定義的行為。

                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)刪除。
                用戶投稿
                上一篇 2022年8月15日 06:09
                下一篇 2022年8月15日 06:09

                相關(guān)推薦

                • 存儲過程語法(sql server存儲過程語法)

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

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

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

                  2022年11月25日
                • 小紅書入駐條件及費用(小紅書開店)

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

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

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

                  2022年11月22日
                • 重慶高風險區(qū)一般多長時間解除(重慶成都是高風險區(qū)嗎)

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

                  2022年11月21日
                • 面包車加入貨拉拉有什么條件(面包車拉貨平臺)

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

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

                  夢晨 Pine 發(fā)自 凹非寺 量子位 | 公眾號 QbitAI 每一個真正會寫代碼的人,請在下午2點到總部10層報到。 每一個真正會寫代碼的人,請在下午2點到總部10層報到。 馬斯…

                  2022年11月21日
                • wish個人開店流程及費用(wish平臺入駐條件)

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

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

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

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

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

                  2022年11月18日

                聯(lián)系我們

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