C++ 的幾個for 循環(huán),范圍for語句
我認為做嵌入式開發(fā)也需要學習C++開發(fā),可能我們學習的不只是一種編程語言,而是一種編程思想,C++相對于C語言來說,會需要更多的想象力,原因就是C++的特點太多了。
不過,我們可以通過學習C++的知識,來掌握面向對象的編程思想,有了這樣的思想后,再去看代碼或者去做自己的項目,是非常有幫助的。
這個號是我的僚機號,會發(fā)一些大號發(fā)不了、或者沒有檔期發(fā)的內容,歡迎大家關注。

C++新標準提供的范圍for語句.這種語句遍歷給定序列中個元素并對序列中每一個值執(zhí)行某種操作,其語法形式是:
for(declaration?:?expression)
???statement
其中,expression部分是一個對象,用于表示一個序列。declaration部分負責定義一個變量,該變量將用于訪問序列中的基礎元素。每次迭代,declaration部分的變量會被初始化為expression部分的下一個元素值。
例子:
#include?
using?namespace?std;
int?main()
{
?string?str("this?is?a?c++");
?//每行輸出str中的一個字符
?for(auto?c?:?str)
?????cout< ?system("pause");
?return?0;
}?
代碼輸出:
t
h
i
s
i
s
a
c
+
+
請按任意鍵繼續(xù).?.?.
代碼中的 auto 關鍵字讓編譯器來決定 c的類型,每次迭代后,str的下一個字符賦值給 c。
看看比較正常的 for 語句
#include?
using?namespace?std;
int?main()
{
?string?str("this?is?a?c++");
?for(int?i?=?0;i ??cout< ?system("pause");
?return?0;
}?
輸出:
t
h
i
s
i
s
a
c
+
+
請按任意鍵繼續(xù).?.?.
第三種方法
#include?
using?namespace?std;
int?main()
{
?string?str("this?is?a?c++");
?for(auto?i?=?str.begin();?i!=?str.end();++i)
??cout<<(*i)< ?system("pause");
?return?0;
}?
輸出
t
h
i
s
i
s
a
c
+
+
請按任意鍵繼續(xù).?.?.
第四種方法
使用STL函數(shù),需要包含頭文件哦。
#include?
#include?
#include??
using?namespace?std;
int?main()
{
?string?str("this?is?a?c++");
?for_each(str.begin(),str.end(),[](char?item)
??{
???cout<- "?";
??});
?system("pause");
?return?0;
}?
輸出
t?h?i?s???i?s???a???c?+?+?請按任意鍵繼續(xù).?.?.
評論
圖片
表情
