📅  最后修改于: 2023-12-03 14:39:53.654000             🧑  作者: Mango
在 C++ 中,Vector 是一个非常常用的容器。它是一个可变大小的动态数组,并且支持常数时间内的在末尾插入和删除元素。
Vector.data()
函数是 Vector 类的一个成员函数,用于获取 Vector 容器底层的自动分配的数组的指针地址。
Vector.data() 函数的语法如下所示:
T* data() noexcept;
const T* data() const noexcept;
其中,T
是指 Vector 容器中元素的类型。
该函数返回一个指向 Vector 容器底层数组第一个元素的指针。如果 Vector 容器是空的,则该函数返回一个指向分配了 0 个元素的数组的指针,而该指针依然是一个有效的指针。
下面是使用 Vector.data()
函数的一个代码示例:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// 创建一个整型数组 vector 容器
vector<int> vec = {10, 20, 30, 40, 50};
// 获取 Vector 容器的底层数组的指针
int *ptr = vec.data();
// 向控制台打印指针指向的数组元素的值
for (int i = 0; i < vec.size(); ++i)
{
cout << *(ptr + i) << " ";
}
return 0;
}
运行结果为:
10 20 30 40 50
上述代码中,我们创建了一个 vector
容器,并使用 Vector.data()
函数获取了它的底层数组的指针。然后,我们使用指针访问了数组中的元素,并将它们打印到控制台上。
需要注意的是,由于我们使用的是 Vector.data()
函数,因此在访问数组元素时最好使用指针算术运算,而不是使用 Vector.at()
函数,因为前者的性能更优。但是需要确保访问的数组元素的下标不越界。