天天看點

for_each如何傳遞多個參數

我們在用vector這個容器的時候是不是經常會用到for_each,然而,很JB錘子的是什麼呢,它隻能傳遞一個參數。這就有點局限性了,不過,解決辦法總是有的,

STL這個标準庫和另一個标準庫一起用就可以了,那就是BOOST這個标準庫,

這個庫裡面有一個函數bind();它的作用就是綁定函數,

當然要使用它,前提是先安裝boost,這個到處都可以下載下傳,教程也有很多,我前面的文章也有。

for_each如何傳遞多個參數

引用一下#include <boost/bind.hpp>頭檔案就可以使用 boost::bind()函數,

在上面的代碼裡面,我總共傳了四個參數,bind ()函數的的第一個參數是綁定函數的名稱,第二個到第四個是傳遞的參數,當然要與下面的DetermineFile()函數的參數對應,

很奇怪吧,最後一個_1其實是個占位符,将ComponentsStr容器的值傳入DetermineFile函數裡面去,對應的是DetermineFile()函數的最後一個參數。

就這樣,for_each就可以實作多個參數傳遞。