将数据从数组复制到矢量 C++ C99

copying data from array to vector c++ c99

本文关键字:C++ C99 复制 数据 数组      更新时间:2023-10-16

>我有 2 个类处理通信数据在一个类中,数组信息存储为固定数组

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 SO,我正在寻找一种不将每个元素传递给新容器的方法

如果它们都是相同的类型,那将不是这样的问题,而是 imm 对 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);

编辑:刚刚注意到类型不同。但是我会保留答案,例如如何放入矢量。