首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从char*初始化std :: string而不复制

char*初始化std::string而不复制的方法是使用std::string的构造函数,该构造函数接受两个指针参数,分别表示字符串的起始位置和结束位置。这样可以避免字符串的复制,提高效率。

示例代码:

代码语言:c++
复制
#include<iostream>
#include<string>

int main() {
    char* cstr = new char[100];
    strcpy(cstr, "Hello, world!");

    std::string str(cstr, cstr + strlen(cstr));

    std::cout<< str<< std::endl;

    delete[] cstr;

    return 0;
}

在这个示例中,我们首先创建了一个char*指针,指向一个包含字符串的内存块。然后使用std::string的构造函数,将char*指针和char*指针加上字符串长度作为结束位置,初始化std::string对象。最后输出std::string对象的内容。

需要注意的是,这种方法仍然会拷贝字符串,只是拷贝的是指针指向的内存块,而不是整个字符串。如果需要避免任何拷贝,可以考虑使用std::string_view,它可以在不拷贝字符串的情况下引用一个字符串。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券