原来原来vector也是连续放在一个内存的呢

由于vector内部的数据是存放在连续的存储空间,vector转数组事实上只需要获取vector中第一个数据的地址和数据的长度即可。如果仅仅是传参,无需任何操作,直接传地址即可,如果要进行数据复制,可以借用内存拷贝函数“memcpy”。例如:

    float *buffer = new float[sizeof(arrHeight)];
    if (!vecHeight.empty())
    {
        memcpy(buffer, &vecHeight[0], vecHeight.size()*sizeof(float));
    }

 

posted @ 2017-08-04 13:53  工大教务处  阅读(1552)  评论(0编辑  收藏  举报