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代表数组长度.)
b. 先定义vector,其元素数目为N,再使用memcpy将array的值拷贝到vector中,如:
vector<int> v(N)
memcpy(&V[0], array, sizeof(array))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 技术交流QQ群:1027579432,欢迎你的加入! 1.Cpp中的数组 C++支持数组数据结构,它可以存储一个固...
    CurryCoder阅读 1,746评论 0赞 1
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,760评论 1赞 51
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,648评论 0赞 6
  • 不要关注和讨论标题党嫌疑,直接看正文对照吧。 一、认为养孩子是艰苦的义务,不是享受。 中国父母,经过传统的教育,习...
    成长的笔记阅读 1,078评论 0赞 0
  • 人情世故我不懂,谈笑间堆满笑容。 一语不合心中痛,沉默不语噤若蝉。 每逢佳节不思亲,孤寂落寞烦人心。 外热内冷不由...
    鹿鹿无畏阅读 606评论 0赞 51

友情链接更多精彩内容