将数据从数组复制到矢量 C++ C99
copying data from array to vector c++ c99
>我有 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);
编辑:刚刚注意到类型不同。但是我会保留答案,例如如何放入矢量。
相关文章:
- 将长度可变的 C99 静态 3D 数组传递给函数
- C99 中的_Complex类型在 C++ 中的行为是否类似于 std::complex<>?
- 也是C 中C99的所有功能
- C99 中参数列表为空的函数与 C++98 不兼容
- 需要 C99 中的_Bool?
- 用C++编译器编译C99文件
- 来自 C99 的 fenv.h 在 C++11
- ioroutin.c:67:4:警告:函数 ' ' 的隐式声明在 C99 中无效
- C99型VLA有哪些技术缺点
- C99 printf 格式化程序与 C++11 用户定义的文本
- C99 VLA的C++替换(目标:保持性能)
- 是否有任何 C99 编译器的默认设置为 -1>>1 != -1?
- Cygwin gcc c++ c99 库错误 stod 无法识别使用的 strtod
- C99:内部名称的 63 个字符很重要
- 为什么 C++11 不支持指定初始值设定项列表作为 C99
- 如何从C++中最好地调用具有C99风格数组函数签名的函数
- 获取C99变元函数的参数类型
- 在xcode C++项目中编译为C99文件
- MinGW编译器Windows版,使用GCC,C99与GNU99
- C99中的指定初始化器:如何处理C11中未初始化的空结构成员