📅  最后修改于: 2023-12-03 15:13:56.926000             🧑  作者: Mango
在C++的STL库中,vector是一种动态数组,提供了方便的操作接口。其中,data()
函数用于返回指向vector中第一个元素的指针,并可用于直接访问和修改vector的底层数组。
T* data() noexcept;
其中,T
代表vector的元素类型。
data()
函数返回一个指向vector底层数组的指针,可以用于直接访问和修改底层数组的值,比如通过指针进行迭代、逆序、排序等操作。
需要注意的是,由于data()
函数返回的指针指向vector底层数组的首元素,因此在修改数组内容时需谨慎,避免越界或无效的指针操作。
同时,需要注意的是,如果vector为空,即没有元素,那么调用data()
函数将返回一个指向空地址的指针,因此在访问之前应先判断vector是否为空。
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
int* ptr = numbers.data();
int size = numbers.size();
// 输出数组的内容
for (int i = 0; i < size; i++) {
std::cout << ptr[i] << " ";
}
std::cout << std::endl;
// 通过指针修改数组的值
for (int i = 0; i < size; i++) {
ptr[i] *= 2;
}
// 输出修改后的数组内容
for (int i = 0; i < size; i++) {
std::cout << ptr[i] << " ";
}
std::cout << std::endl;
return 0;
}
以上示例中,我们首先创建一个包含5个整数的vector,然后通过data()
函数获取指向数组的指针。接着,我们通过指针迭代并输出数组的内容。然后,我们通过指针修改数组的值,再次输出修改后的数组内容。
data()
函数要确保vector不为空,否则返回的指针将为一个空指针。以上是关于C++ STL中vector的data()
函数的介绍,希望对程序员有所帮助。