代码之家  ›  专栏  ›  技术社区  ›  pasha

C++:为什么STD::vector:数据成员函数被引入?

  •  1
  • pasha  · 技术社区  · 6 年前

    我在看STL的向量容器下面的链接。并且提到了一个新的成员函数(用C++ 11)添加到这个容器中。 vector::data

    http://www.cplusplus.com/reference/vector/vector/data/

    引入此成员功能有什么具体原因吗?

    0 回复  |  直到 6 年前
        1
  •  2
  •   Krzysiek Karbowiak    6 年前

    我认为 data() 为了接口的完整性和方便性,引入了函数。

    这样我们就不必诉诸于 &vec[0] &vec.front()

    此外,在许多应用程序中,比如与C代码或一些外部库的接口,或者在嵌入的上下文中,获取指向底层数据的指针都很有用。

        2
  •  2
  •   generic_opto_guy    6 年前

    从评论中:

    可能会出现故障:

    • 任何导致在向量中重新分配底层数据的操作(例如添加元素或收缩)都会使指针指向悬挂的指针。(正如注释中指出的,迭代器和引用也是如此)