C++:为什么引入 std::vector::data 成员函数?

标签 c++ c++11 vector stl member-functions

我正在从下面的链接查看 STL 的 vector 容器。并且提到,添加到此容器的新成员函数之一(使用 C++11)是 vector::data,它返回一个指向内部使用的内存数组的指针。

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

上面链接中给出的示例代码也显示了它的用法,但似乎所有这些都可以使用迭代器来完成。

引入这个成员函数有什么具体原因吗?

最佳答案

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

这样我们就不需要求助于丑陋的 &vec[0]&vec.front()

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

关于C++:为什么引入 std::vector::data 成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54662602/

相关文章:

C++ 自动加载对象属性的默认构造函数

c++ - 函数指针(类内)

java - 处理/Java ArrayList和LinkedList异常

matlab - 如何在 matlab 中分析矢量外积

c++ - "error: expected class-name before ' { ' token"试图继承

c++11 评估顺序(未定义行为)

c++ - std::unique_ptr ABI 与原始指针兼容吗?

c++ - 获取可变参数模板可变参数模板参数可变参数

c++ - 在 C++ 中添加一个整数和一个元组作为二维 vector 每一行的列成员

c++ - 在构造函数中调用不同类的构造函数?