自动类型向量

时间:2014-09-08 13:59:31

标签: c++11

我刚刚读到了C ++中的向量。它们似乎与Python中的列表类似,但它们只能获取声明中指定的数据类型的值。例如:

vector<int> intlist;

仅采用int类型数据。而Python中的列表采用任何类型的数据。我尝试通过编写:

在C ++中实现相同的功能
vector<auto> list;

但它导致了错误的编译。我不确定为什么会发生这种情况,因为它适用于其他数据类型。

2 个答案:

答案 0 :(得分:2)

auto不是变体类型,它只是您可以在代码中使用的快捷方式,当编译器可以推断出类型时。

在Python列表下面是变体的一些实现,我建议使用boost::python来管理C ++ - Python交互。

答案 1 :(得分:2)

你做错了。

C ++是强类型的。 auto是在编译时可以确定变量类型时使用的关键字,这不是您想要的。

如果你需要一个不同类型的对象矢量,你必须使用像boost::any这样的库。

编辑:

C ++是静态类型的,Python是dinamically类型,这是不同的。感谢@Angew纠正我的错误。