美文网首页
C++ 中vector和数组的互相转换

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

作者: chjxidian | 来源:发表于2019-11-09 10:43 被阅读0次

    一. 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代表数组长度.)
    
    b. 先定义vector,其元素数目为N,再使用memcpy将array的值拷贝到vector中,如:
    vector<int> v(N)
    memcpy(&V[0], array, sizeof(array))
    

    相关文章

      网友评论

          本文标题:C++ 中vector和数组的互相转换

          本文链接:https://www.haomeiwen.com/subject/ahwgbctx.html