【发布时间】:2020-08-27 16:51:23
【问题描述】:
是否可以在 std::string 中保留空间并获得将 char 数据直接复制到其中的指针? 我必须与通过将字符串复制到 char * 中返回字符串的 C 库进行交互。 如何设置 std::string 以便库可以直接写入其中,避免中间副本。
假设示例如下:
std::string mystring;
int strlen = foolib_get_string_size(fooval);
mystring.size(strlen); // assuming size() with arg exists and does reserve() and set size
foolib_string_to_char_buffer(fooval, mystring.data(), strlen); // abusing data() method for writing
【问题讨论】:
-
mystring.size(strlen);...你想要的是mystring.resize(strlen); -
@g19fanatic:内容确实是同一个问题,但标题具有误导性(暗指 existing char * 数组)。这就是它没有出现在搜索结果中的原因。
-
虽然你的标题对我来说不太清楚。
标签: c++ string performance copy buffer