You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在shared_ptr<string>上直接调用string类成员函数?

解答:直接通过shared_ptr<string>调用string成员函数的方法

当然可以直接调用,完全不需要拷贝到临时变量!std::shared_ptr重载了->运算符,它会自动帮你解引用到底层的std::string对象,所以你直接用->访问成员函数就行,比如:

// 初始化一个shared_ptr<string>实例
std::shared_ptr<std::string> sharedPtrStringVar = std::make_shared<std::string>("这是测试字符串");

// 直接调用length()获取长度
size_t strLength = sharedPtrStringVar->length();

// 同样可以调用其他string成员函数,比如判断空、追加内容等
bool isStrEmpty = sharedPtrStringVar->empty();
sharedPtrStringVar->append(",这是追加的内容");

如果你习惯用解引用的写法,也可以先对shared_ptr用*解引用,再用.访问成员,比如(*sharedPtrStringVar).length(),不过显然->的写法更简洁直观。

这种方式完全不需要创建临时字符串变量,直接操作shared_ptr指向的原对象,既节省了内存开销,也避免了字符串拷贝带来的性能损耗,就是你想要的更优实现方式。

另外,正如你提到的,感谢Yksisarvinen的解答,这正是你想了解的内容。


内容的提问来源于stack exchange,提问作者Nerrock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:32:53