当前位置: 首页 > news >正文

比较C++中数组,vector,array

一、数组
这里不再细说。数组不可以使用变量来规定数组的长度。

二、模板类vector
他类似于string类,也是一种动态数组。可以自己在运行时设置数组长度,也可以添加元素,插入元素。vector使用new和delete来操作内存,但是是自动完成。

#include <vector>
...
using namespace std;
int main()
{
    int n;
    cin>>n;//通过输入获取数组长度
    vector<double> v(n);//创建了n个长度的double类型模板
    v[0]=32.2;
    return 0;
}

使用:
vector v (length);

三、模板类array
array的数组是固定长度的。不是动态的。和普通数组一样面试用栈(静态内存分配)来存储,而不是自由存储区,因此效率和普通数组一样,但是更安全,更方便。

#include<array>
...
using namespace std;
int main()
{
    array<int ,10 > x;//长度为10的int类型数组
    array<int ,3 > y={2,4,1};
    array<int ,3 > z;
    z=y;//这里array的赋值,比标准数组方便,不需要逐个进行赋值
    return 0;
}

四、三者的区别
无论是array还是vector都可以用标准数组的访问方式来访问数据。
但是这样可能导致数组越界的情况发生。vector,array可以使用at方法来避免这样错误发生,而且他们也有不同的方法来进行各种各样的操作,比标准数组方便很多。

相关文章:

  • 一、opencv的图像基本读写
  • 二、opencv的滑块使用
  • 三、Mat类的使用
  • 四、常用数据结构和函数
  • 五、颜色空间缩减
  • 2017.5.5
  • ubuntu安装QT5.7
  • QT 语法知识
  • Qt Creator 使用tips
  • C++使用tips
  • QT布局和ui简单使用
  • QWidget关系图及部件
  • 窗口坐标和布局
  • 初识对话框
  • 初识信号与槽
  • [译] React v16.8: 含有Hooks的版本
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 30秒的PHP代码片段(1)数组 - Array
  • Java 最常见的 200+ 面试题:面试必备
  • PAT A1092
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • Vue--数据传输
  • webpack入门学习手记(二)
  • Windows Containers 大冒险: 容器网络
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 百度小程序遇到的问题
  • 浮现式设计
  • 面试遇到的一些题
  • 思否第一天
  • 微信小程序填坑清单
  • 为什么要用IPython/Jupyter?
  • 小程序button引导用户授权
  • 用element的upload组件实现多图片上传和压缩
  • 源码安装memcached和php memcache扩展
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​TypeScript都不会用,也敢说会前端?
  • ​ubuntu下安装kvm虚拟机
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (145)光线追踪距离场柔和阴影
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (Python) SOAP Web Service (HTTP POST)
  • (待修改)PyG安装步骤
  • (转)Linux下编译安装log4cxx
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .net打印*三角形
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET命令行(CLI)常用命令