阅读量:0
在 C++ 中,data()
函数通常与字符串或容器相关
对于 std::string
,data()
函数返回一个指向字符数组的常量指针(const char*
)。这个指针指向字符串的第一个字符,并以空字符(null-terminator, '\0'
)结尾。
#include<iostream> #include<string> int main() { std::string str = "Hello, World!"; const char* ptr = str.data(); std::cout << "String: "<< str<< std::endl; std::cout << "Pointer to the first character: "<< static_cast<void*>(ptr)<< std::endl; std::cout << "First character: " << *ptr<< std::endl; return 0; }
对于其他容器(如 std::vector
、std::array
等),data()
函数返回一个指向容器内第一个元素的指针。指针的类型取决于容器中元素的类型。例如,对于 std::vector<int>
,data()
函数将返回一个指向整数的指针(int*
)。
#include<iostream> #include<vector> int main() { std::vector<int> vec = {1, 2, 3, 4, 5}; int* ptr = vec.data(); std::cout << "Vector size: "<< vec.size()<< std::endl; std::cout << "Pointer to the first element: "<< static_cast<void*>(ptr)<< std::endl; std::cout << "First element: " << *ptr<< std::endl; return 0; }
请注意,data()
函数返回的指针可能会在容器发生修改时失效。因此,在使用指针之前,请确保容器保持不变。