gpt4 book ai didi

c++ - 不同类型的嵌套容器

转载 作者:搜寻专家 更新时间:2023-10-31 01:49:46 26 4
gpt4 key购买 nike

我是 STL 的新手,想知道实现它的最佳方法:我想用不同类型的元素嵌套容器。我的想法是一个集合,其元素可以是 vector 或 map 。

这样我就可以遍历集合,将通用操作应用于它的所有元素。同时,对元素的一些操作将取决于 vector 或 map 类型。但是,我假设所有元素必须属于同一类型。

是否有替代方案来实现这样的东西?

最佳答案

您不能将两种不同的对象放入标准容器中。您需要做的是将容器“包装”在另一个“知道”它实际持有的对象类型的对象中。 boost::variant<T1, T2 ... >是一种相对标准的方法。如果你不能使用 boost 库,那么你可能会发现类似这样的东西可以正常工作:

struct wrapper
{
int type; // or enum
union {
vector v;
map m;
} content;
};

关于c++ - 不同类型的嵌套容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086511/

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