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

C++ 为什么我们需要使用std::vector::pointer来访问元素?,c++,stl,C++,Stl,通常我们可以使用向量数组访问器访问元素并修改元素,为什么我们需要指针 如果你认为指针输入std::vector是不必要的,我会说它不是 vector可以被视为一个受管理的、动态大小的数组,它确实支持数组可以执行的所有有意义的操作,即使它具有兼容的内存布局,并且在许多情况下可以用作数组 若您可以通过指针访问数组中的元素,那个么它在向量中也应该是可行的 指针类型是对T*的简化,因为向量是一个模板。,参考,分配器类型,大小类型。。。您可以找到完整的列表。这些别名在常规设置中非常有用。假设您正在编写一个

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


如果你认为
指针
输入
std::vector
是不必要的,我会说它不是

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

若您可以通过指针访问数组中的元素,那个么它在
向量中也应该是可行的


指针
类型是对
T*
的简化,因为
向量
是一个模板。

参考
分配器类型
大小类型
。。。您可以找到完整的列表。这些别名在常规设置中非常有用。假设您正在编写一个通用函数,该函数接受一些容器,并希望创建一个
T*
类型的实例,其中容器包含
T
类型的对象。对于
std::vector
(泛型
V
)专门化(也可以应用于其他STL容器),您可以将此类型作为
typename V::value\u type*
,或者更简单地说作为
typename V::pointer

@Dyrandz,我认为它们不是同一个问题,我猜Adam在问为什么在
std::vector
中有一个看似冗余的
指针
类型,而元素总是可以通过其他访问器访问,比如
操作符[]