gpt4 book ai didi

C++ 如何在 shared_ptr vector 中存储多种类型?

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

如何在 std::vector 中存储多个 shared_ptr,每个 shared_ptr 都带有指向不同类型的指针?

std::vector < ? > vec;
vec.push_back( make_shared<int>(3));
vec.push_back( make_shared<float>(3.14f));

是否有一个基本的多态类,我可以将其用于该任务而无需使用特定于编译器的东西?

最佳答案

有几种方法可以做到这一点。我假设您想存储各种 native 类型,因为您正在使用 int 和 float。

  1. 如果您的类型列表是有限的,请使用 boost::variant .例如

    std::vector<std::shared_ptr<boost::variant<int, float>>>;
  2. 如果你想存储任何东西,使用boost::any .例如

    std::vector<std::shared_ptr<boost::any>>;

关于C++ 如何在 shared_ptr vector 中存储多种类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17278994/

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