美文网首页
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和数组的互相转换

    一. vector转数组: 使用memcpy将vector中的数据拷贝到数组中 注意: memcpy的第三个参数,...

  • 标准模板库-vector

    标准模板库-vector 1. vector简介 vector为C++的STL中的模板数组容器。在使用时需要包含#...

  • OJ刷题知识点

    C++ | vector vector:向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence ...

  • vector PAT1052

    Vector 是在 java 中可以实现自动增长的对象数组,vector在C++标准模板库中的部分内容,它是一个多...

  • c++ list, vector, map, set 区别与用法

    c++ list, vector, map, set 区别与用法比较 List封装了链表,Vector封装了数组,...

  • STL容器(1)-vector类

    STL vector vector是C++中的动态数组,支持动态扩容同时再末尾添加元素的时间复杂度控制在o(1) ...

  • C++零散笔记

    C++之vector 一、什么是vector?向量(Vector)是一个封装了动态大小数组的顺序容器(Sequen...

  • R语言之数据结构

    1 向量 创建两种方式:vector()和c() 类型转换 长度 列命名 元素访问 2 数组和矩阵 2.1 数组 ...

  • 宏的妙用

    [TOC] 变长数组 ​ 严格说来,变长数组的实现在c++中并不是一件麻烦的事情。Stl中的vector本身就...

  • C++知识查缺补漏

    C++知识查缺补漏 Vector 向量,动态数组 C++中的一个类,用起来相当于动态数组,可以使用在一开始无法确定...

网友评论

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

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