vis*_*tor 10
适当的算法是std :: transform,您可以使用std :: mem_fun将成员函数调用转换为一元函子
例:
#include <vector>
#include <functional>
#include <algorithm>
#include <iterator>
class X
{
public:
X* clone();
};
int main()
{
std::vector<X*> vec1, vec2;
std::transform(vec1.begin(), vec1.end(), std::back_inserter(vec2), std::mem_fun(&X::clone));
}
Run Code Online (Sandbox Code Playgroud)
如果目标矢量的大小与输入范围相同,则可以vec2.begin()作为第三个参数传递.使用back_inserter如果目标是空的(或要追加到它).