ein*_*ica 1 c++ string performance c++-standard-library construct
它的执行成本有多高
const std::string s(my_const_char_ptr, my_length);
Run Code Online (Sandbox Code Playgroud)
?是否涉及复制?如果没有,我可以从典型的标准库实现中获得多少指令?在性能关键代码中几乎没有这个?
...或者我必须获得GSL实施和使用string_view吗?
如果您想知道确切的答案,则需要在目标系统和编译设置上进行测量.但是对于幕后发生的事情:
如果my_length足够大(或标准库的std::string实现不使用小字符串优化 - 这是罕见的),那么将有动态内存分配.
在任何情况下,都会有一个O(n)逐个字符的副本*my_const_char_ptr到std::string缓冲区.