簡體   English   中英

將數據從數組復制到向量c ++ c99

[英]copying data from array to vector c++ c99

我有兩類處理通訊數據,在一類中,數組信息存儲為固定數組

uint8 msg[512];   
//fixed array to reduce mem fragmentation on target

我想將其復制到第二類的向量中

vector<uint16> schbuff;  
// not set offend so mem fragmentation on such a issue

我正在使用c ++ c99,所以我正在尋找一種方法來避免將每個元素傳遞給新容器

如果它們都是相同的類型,那將不是問題,但是對於C ++來說是新的,所以將不勝感激

您可以使用std::copy

#include <algorithm>   // for copy
#include <iterator>    // for begin, end, back_inserter

std::copy(std::begin(msg), std::end(msg), std::back_inserter(schbuff));

您可以使用構造函數

vector<uint16> schbuff( msg, msg + 512 );   

或者可以使用成員函數分配

schbuff.assign( msg, msg + 512 );   

或者可以使用成員功能儲備。 例如

vector<uint16> schbuff;
schbuff.reserve( 512 );

std::copy( msg, msg + 512, std::back_inserter( msg ) );
const int msg_size = 512;
uint8 msg[msg_size];
vector<uint8> msg_vec;
msg_vec.assign(msg, msg + msg_size);

編輯:只是注意到類型不同。 但是我將保留例如如何放入向量的答案。

暫無
暫無

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

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