C++ 中vector和数组的互相转换

一. vector转数组: 使用memcpy将vector中的数据拷贝到数组中

注意: memcpy的第三个参数,拷贝长度必须乘以sizeof(vec[0])

#include <vector>
#include <iostream>
using std::vector;
int main(void){
    //初始化为10个c字符
    vector<unsigned char> vec(10, 'c');
    unsigned char charray[vec.size()];
    //vector全部转到数组
    memcpy(charray, &vec[0], vec.size() * sizeof(vec[0]));
    for(int i = 0; i != sizeof(charray); ++i){
        std::cout << charray[i] ; //打印出来观察一下
    std::cout << std::endl;
    //转部分vector数据到数组,最后4个
    unsigned char ary1[4];
    memcpy(ary1, &vec[6], 4);
    for(int i = 0; i != sizeof(ary1); ++i){
        std::cout << ary1[i] ;
    std::cout << std::endl;
    return 0;

二. 数组转vector:使用vector的初始化构造函数

a. 定义vector时直接赋值,如:
vector<char> v(array, array + sizeof(array))  //其用法是:vector<char> v(a, a+N)  (其中:N代表数组长度.)