最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
c++中for_each函數(shù)如何使用

c++中for_each 函數(shù)如何使用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)是一家集網站建設,徽州企業(yè)網站建設,徽州品牌網站建設,網站定制,徽州網站建設報價,網絡營銷,網絡優(yōu)化,徽州網站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網站。

for_each()事實上是個 function template,其源碼如下
link:http://www.cplusplus.com/reference/algorithm/for_each/?kw=for_each

template
Function for_each(InputIterator beg, InputIterator end, Function f) {
  while(beg != end) 
    f(*beg++);
}
能看懂吧?。?!
 

例如:

// for_each example
#include     // std::cout
#include    // std::for_each
#include       // std::vector

void myfunction (int i) {  // function:
  std::cout << ' ' << i;
}

struct myclass {           // function object type:
  void operator() (int i) {std::cout << ' ' << i;}
} myobject;

int main () {
  std::vector myvector;
  myvector.push_back(10);
  myvector.push_back(20);
  myvector.push_back(30);

  std::cout << "myvector contains:";
  for_each (myvector.begin(), myvector.end(), myfunction);
  std::cout << '\n';

  // or:
  std::cout << "myvector contains:";
  for_each (myvector.begin(), myvector.end(), myobject);
  std::cout << '\n';

  return 0;
}

結果:
myvector contains: 10 20 30
myvector contains: 10 20 30
 

foreach其他用法:https://www.cnblogs.com/zhangkele/p/9373063.html

2. C++11之for循環(huán)的新用法
C++使用如下方法遍歷一個容器:

遍歷vector容器
#include
#include

int main()
{
    std::vector arr;
    arr.push_back(1);
    arr.push_back(2);

    for (auto it = arr.begin(); it != arr.end(); it++)
    {
        std::cout << *it << std::endl;
    }

    return 0;
}
 

其中auto用到了C++11的類型推導。同時我們也可以使用std::for_each完成同樣的功能:

#include
#include
#include

void func(int n)
{
    std::cout << n << std::endl;
}

int main()
{
    std::vector arr;
    arr.push_back(1);
    arr.push_back(2);

    std::for_each(arr.begin(), arr.end(), func);

    return 0;
}
 

現(xiàn)在C++11的for循環(huán)有了一種新的用法:

#include
#include

int main()
{
    std::vector arr;
    arr.push_back(1);
    arr.push_back(2);

    for (auto n : arr)
    {
        std::cout << n << std::endl;
    }

    return 0;
}
 

上述方式是只讀,如果需要修改arr里邊的值,可以使用for(auto& n:arr),for循環(huán)的這種使用方式的內在實現(xiàn)實際上還是借助迭代器的,所以如果在循環(huán)的過程中對arr進行了增加和刪除操作,那么程序將對出現(xiàn)意想不到的錯誤。

遍歷map映射容器 三種方式

map m;
 // 1
for (    auto &v : m)  
     {
         cout<    }

 // 2 lamda表達式
 for_each(m.begin(),m.end(),[](map::reference a){
         cout<     });

// 3 for_each
 void fun(map::reference a)  //不要少了reference,不然會報錯。
{
         cout<}
for_each(m.begin(),m.end(),fun);
 

還有一種宏定義的方法實現(xiàn)foreach循環(huán):

//定義
#define foreach(container,it) \
    for(typeof((container).begin()) it = (container).begin();it!=(container).end();++it)
//輸出
foreach(m,it)
    {
        cout<first<<","<second<    }

看完上述內容,你們掌握c++中for_each 函數(shù)如何使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享題目:c++中for_each函數(shù)如何使用
URL標題:http://fisionsoft.com.cn/article/jddjic.html