簡體   English   中英

將char緩沖區附加到向量 <char> 在STL

[英]Attaching char buffer to vector<char> in STL

將C緩沖區( char * )的內容附加到std::vector<char>的末尾的正確(有效)方法是什么?

當你有一個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 );

將它委托給向back_inserter使用back_inserter因為向量可以決定它的最終大小。 back_inserter只會push_back ,可能導致更多的重新分配。

我認為正確的方法是

vec.insert(vec.end(),buf,buf+length);

要么

std::copy(buf,buf+length,std::back_inserter(vec));

編輯:我重新排序了兩個例子,所以不是評論者錯了,這只是我;-)

我沒有編譯它,但它應該是這樣的:

const char string1[] = "a string";
std::vector<char> vData;
vData.insert(vData.end(), string1, string1+strlen(string1));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM