为什么我们需要使用std :: vector :: pointer来访问元素?

时间:2015-01-16 06:35:26

标签: c++ stl

通常我们可以使用向量数组访问器来访问元素并修改元素,为什么我们需要指针?

http://msdn.microsoft.com/en-us/library/7e4tx21z(VS.71).aspx

2 个答案:

答案 0 :(得分:1)

typedef中名为pointer的便利std::vector的存在与typedef,{{value_type等无数其他reference的存在无异。 1}},allocator_typesize_type ...您可以找到完整列表here。这些别名在通用设置中非常有用。假设您正在编写一个接受一些容器的泛型函数,并希望创建一个类型为T*的实例,其中容器包含T类型的对象。对于std::vector(泛型类型V,比如说)特化(也可能适用于其他一些STL容器),您可以将此类型设为typename V::value_type *或更简单地为{{ 1}}。

答案 1 :(得分:-1)

如果您认为pointerstd::vector类型不是必需的,我会说它不是。

vector可以被视为托管的,动态大小的数组,它支持数组可以执行的所有有意义的操作,即使它具有兼容的内存布局,并且在许多情况下可以用作数组。

如果你可以通过指针访问数组中的元素,它也应该在vector中可行。

pointer类型是T *的简化,因为vector是模板。