gpt4 book ai didi

c++ - 复制指针 vector

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:49 25 4
gpt4 key购买 nike

我有一个 std::vector<A*>我需要使用 A::Clone() 将其深度复制到另一个 vector .

我想知道我是否可以使用 for_each 而不是使用手写循环或任何标准库算法。

最佳答案

合适的算法是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));
}

如果目标 vector 已经与输入范围大小相同,您可以将 vec2.begin() 作为第三个参数传递。如果目标为空(或者您想附加到它),请使用 back_inserter

关于c++ - 复制指针 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6775394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com