for_each如何传递多个参数

我们在用vector这个容器的时候是不是经常会用到for_each,然而,很JB锤子的是什么呢,它只能传递一个参数。这就有点局限性了,不过,解决办法总是有的,

STL这个标准库和另一个标准库一起用就可以了,那就是BOOST这个标准库,

这个库里面有一个函数bind();它的作用就是绑定函数,

当然要使用它,前提是先安装boost,这个到处都可以下载,教程也有很多,我前面的文章也有。

for_each如何传递多个参数_第1张图片


引用一下#include 头文件就可以使用 boost::bind()函数,

在上面的代码里面,我总共传了四个参数,bind ()函数的的第一个参数是绑定函数的名称,第二个到第四个是传递的参数,当然要与下面的DetermineFile()函数的参数对应,

很奇怪吧,最后一个_1其实是个占位符,将ComponentsStr容器的值传入DetermineFile函数里面去,对应的是DetermineFile()函数的最后一个参数。

就这样,for_each就可以实现多个参数传递。




你可能感兴趣的:(c++,stl,boost)