繁体   English   中英

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

[英]Why do we need to use std::vector::pointer to access elements?

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

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

std::vector便利类型为typedef命名pointer的存在与value_typereferenceallocator_typesize_type等无数其他typedef的存在没有区别。您可以在此处找到完整列表。 这些别名在常规设置中非常有用。 假设您正在编写一个接受一些容器的泛型函数,并且想要创建一个T*类型的实例,其中该容器包含T类型的对象。 对于std::vector (例如,通用V型)特殊化(可能也适用于其他一系列STL容器),您可以将其作为类型名typename V::value_type *或更简单地作为typename V::pointer

如果您认为没有必要在std::vector输入pointer类型,那不是必须的。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM