【发布时间】:2013-04-06 01:04:11
【问题描述】:
是否可以在 C++ 中创建一个子字符串作为指向与原始字符串相同的内存的指针?
假设我有一个字符串s = "just testing" 和一个函数f。我希望函数 f 返回一个常量字符串对象(用户无法更改它),它将是 s 的子字符串,我希望 f 以最有效的方式创建此子字符串。
我唯一的想法是返回一对指针——在子字符串的开头和结尾,但我很想给最终用户f返回一个对象的“感觉”,他可以打印它,迭代它等等。
在 C++ 中可以吗?
【问题讨论】:
-
...和 Qt 中的
QStringRef -
是的,当然这是可能的,但最好有更安全的设施,而不是简单的 2 个原始指针。 IE。您需要一个能够提供此功能的类,并将客户端从其实现方式中抽象出来。
-
谢谢!如果我不使用 QT,是否有任何理由(性能、灵活性等)我应该使用
QStringRef而不是 boost ? -
如果你没有使用 Qt,那么为了获得这个功能就没有必要在你的项目上强加像
QtCore这样的重量级依赖。坚持使用 Boost,我怀疑你会遇到任何性能瓶颈。
标签: c++ string performance memory