c++ data函数返回值是什么类型

1949idc 2年前 (2024-09-18) 阅读数 436 #编程语言

在 C++ 中,data() 函数通常与字符串或容器相关

对于 std::stringdata() 函数返回一个指向字符数组的常量指针(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::vectorstd::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() 函数返回的指针可能会在容器发生修改时失效。因此,在使用指针之前,请确保容器保持不变。

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业