gpt4 book ai didi

c++ - 将 vector 转换为 vector 时如何避免复制

转载 作者:太空狗 更新时间:2023-10-29 21:06:32 24 4
gpt4 key购买 nike

当一个函数需要一个带有(指向)基类对象的 vector 作为输入但我只有一个(指向)派生对象的 vector 时,有没有办法避免复制大 vector ?

class Base {};

class Derived : public Base {};

void doStuff(vector<Base*> &vec)
{
//do stuff with vec objects
}

int main()
{
vector<Derived*> fooDerived(1000000);

vector<Base*> fooBase(fooDerived.begin(), fooDerived.end()); // how to avoid copying here?
doStuff(fooBase);
}

最佳答案

如果你可以使用 vector<Derived*>好像它在哪里 vector<Base*> , 你可以添加一个指向 class OtherDerived : public Base 的指针到那个 vector 。这很危险。

关于c++ - 将 vector<Derived*> 转换为 vector<Base*> 时如何避免复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7552977/

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