转换 boost::shared_array<char>
的最佳方法是什么?到 std::string
?
以下代码片段有效,但看起来不是很优雅。
boost::shared_array<char> boostString = DatabaseFileName.GetCString(CZString::eAscii);
std::string stdString;
for(size_t i = 0; boostString[i] != 0; i++)
{
stdString.append(1, boostString[i]);
}
最佳答案
Boost shared array使用 new[]
分配它的数据,这意味着它在内存中都是连续的。这意味着您可以获得指向第一个元素的指针作为 C 风格字符串,您可以从中创建一个 std::string
实例。
这当然需要数据有终止符,或者让您知道“字符串”的长度。
关于c++ - boost::shared_array<char> 到 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088360/