通常我们可以使用向量数组访问器来访问元素并修改元素,为什么我们需要指针?
http://msdn.microsoft.com/en-us/library/7e4tx21z(VS.71).aspx
答案 0 :(得分:1)
typedef
中名为pointer
的便利std::vector
的存在与typedef
,{{value_type
等无数其他reference
的存在无异。 1}},allocator_type
,size_type
...您可以找到完整列表here。这些别名在通用设置中非常有用。假设您正在编写一个接受一些容器的泛型函数,并希望创建一个类型为T*
的实例,其中容器包含T
类型的对象。对于std::vector
(泛型类型V
,比如说)特化(也可能适用于其他一些STL容器),您可以将此类型设为typename V::value_type *
或更简单地为{{ 1}}。
答案 1 :(得分:-1)
如果您认为pointer
中std::vector
类型不是必需的,我会说它不是。
vector
可以被视为托管的,动态大小的数组,它支持数组可以执行的所有有意义的操作,即使它具有兼容的内存布局,并且在许多情况下可以用作数组。
如果你可以通过指针访问数组中的元素,它也应该在vector
中可行。
pointer
类型是T *
的简化,因为vector
是模板。