将矢量值复制到char*
Copy Vector values to char*
我有三个向量
std::vector<long long unsigned> eightByte_v;
std::vector<unsigned char> oneByteDelta_v;
std::vector<unsigned short> twoByteDelta_v;
我在向量中分别插入了两个值
eightByte_v.pushback(0x111111111111);
eightByte_v.pushback(0x2222222222222222);
oneByteDelta_v.pushback(0x33);
oneByteDelta_v.pushback(0x44);
twoByteDelta_v.pushback(0x5555);
twoByteDelta_v.pushback(0x6666);
我想将所有向量合并为char*,如下所示。
char[0] = 00
char[1] = 00
char[2] = 11
char[3] = 11
char[4] = 11
char[5] = 11
char[6] = 11
char[7] = 11
char[8] = 22
char[9] = 22
char[10] = 22
char[11] = 22
char[12] = 22
char[13] = 22
char[14] = 22
char[15] = 22
char[16] = 22
char[17] = 22
char[18] = 33
char[19] = 44
char[20] = 55
char[21] = 55
char[22] = 66
char[23] = 66
从char 0到17等于eightByte_v
从char 18到19相当于oneByte_v
从char 20到23相当于twoByte_v
我想我可以用memcpy
来做,但有其他方法吗?
提前谢谢!
想到了使用union
之类的替代方案,但很难或不可能以定义的方式做到这一点:您总是会遇到结构封装和指针强制转换问题。
考虑到C++标准保证了std::vector
中的数据连续性(并且可以使用data()
函数访问数据缓冲区(,memcpy
可以说是最好的方法。
但请记住,char
的符号性取决于平台。你可能想要更明确一些;考虑使用CCD_ 7。
相关文章:
- 使用strcpy将char数组的元素复制到另一个数组
- 使用动态分配将 char* 复制到另一个字符**
- 如何将 cv::Mat & Img 复制到未签名的 char* img?opencv
- 我可以使用istream_iterator将<char>一些 istream 内容复制到 std::string 中吗?
- char 和 char& 之间是否存在相对复制开销差异?
- 如何在忽略 null 的同时将数据从 char [] 复制到常量字符 *
- 如何将const char*复制到c 中的uint8_t []
- C - 从const char*复制到字符串
- 将矢量<char>复制到 2D 矢量 <string> c++
- C++将 char 复制到 char 数组(调试断言失败)时,字符串不是以 null 结尾的
- 将内存从char*复制到较大char*中的某个位置
- C++ 使用 char* 复制字符数组(无字符串库)
- 将 boost::array<char> 复制到 std::string
- 如何将char复制到char*向量中
- 将子字符串从char*复制到std::string的优雅方式
- 如何在c++中将数组char复制到字符串或int*(void*)中
- 方便地将 std::vector<unsigned char> 复制到输入流 (std::istream) 对象
- 从char*复制到char[]
- 将char复制到struct指针char
- 如何有效地将 std::vector<char> 复制到 std::string