用C ++实现类似Python的列表

时间:2016-06-21 18:48:10

标签: c++ templates dynamic data-structures types

这个问题的答案几乎肯定存在于其他地方,我无法想出这个词,请随时指导我其他资源。

我希望用C ++实现一个Python-esque列表。我意味着我想要创建vector。我知道这是怎么做到的。我要做的是创建一个可以存储以下值的数据结构:

[1, "a", 3.5]
像在Python中一样。我也希望它的大小是动态的。

这有名字吗?这已经在某处实现了吗?

我一直在尝试包含模板化节点的链接列表,但我不知道如何编写访问函数,当节点i可能时,它将获得节点i任何数据类型。想法,建议?先感谢您。

2 个答案:

答案 0 :(得分:1)

  像在Python中一样。我也希望它的大小是动态的。

嗯,对于固定尺寸,std::tuple<>应该很适合你。

  

这有名字吗?这已经在某处实现了吗?

&#34;此&#34; 的名称是 容器,用于存储动态大小的任意类型序列 。虽然重点是 任意类型 占位符。

不幸的是,当前标准中没有std::any类型,它支持动态大小的容器,如std::vector<std::any>

如果您无法使用工具链访问实验性实施,则可以使用boost::any类型。

答案 1 :(得分:0)

您需要vector anyany类型来自boost或C ++ 17。