【发布时间】:2019-12-14 04:40:45
【问题描述】:
我有一个类,其中包含一个字符串作为私有成员。该类具有公共成员函数,它们都将 const ref 返回到 std::wstring。
所有返回的 const-ref 字符串都是私有成员的子字符串。
我可以将每个子字符串存储为成员,然后将 const refs 返回给这些成员,但这不是最优的,因为它会复制内存。
假设我确实存储了足够的内存来知道每个子字符串的开始和结束索引。
如何在不复制任何成员字符串的情况下实现上述类?
【问题讨论】:
-
可能是 boost::string_ref 以帮助您完成任务
-
重复? How can I pass a substring by reference?。这里建议的是传递一个迭代器,或者把它当作一个 char*。
-
改为返回
std::string_viewen.cppreference.com/w/cpp/string/basic_string_view? -
string或wstring?你是两者都用,还是打错了?
标签: c++ c++17 stdstring flyweight-pattern