将C buffer(char *)的内容附加到结尾的正确(有效)方法是std::vector<char>什么?
xto*_*ofl 37
当您有vector<char>可用时,您可能最好调用该vector<char>::insert方法:
std::vector<char> vec;
const char* values="values";
const char* end = values + strlen( values );
vec.insert( vec.end(), values, end );
Run Code Online (Sandbox Code Playgroud)
将它委托给向量是优选使用a,back_inserter因为向量可以决定它的最终大小.该back_inserter只push_back,可能导致更多的再分配.
我认为正确的方法是
vec.insert(vec.end(),buf,buf+length);
Run Code Online (Sandbox Code Playgroud)
要么
std::copy(buf,buf+length,std::back_inserter(vec));
Run Code Online (Sandbox Code Playgroud)
编辑:我重新排序了两个示例,所以不是评论者错了,而是我自己;-)
| 归档时间: |
|
| 查看次数: |
18043 次 |
| 最近记录: |