在 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()
函數返回的指針可能會在容器發生修改時失效。因此,在使用指針之前,請確保容器保持不變。