C++ 标准库提供了被封装的动态数组——vector,这种被封装的数组可以具有各种类型。vector不是一个类,而是一个类模版。
vector定义动态数组的形式为:

vector<元素类型>数组对象名(数组长度);

尖括号中的类型名表示数组元素的类型。数组长度是一个表达式,表达式中可以包含变量。

#include <iostream>
#include <vector>using namespace std;// 计算数组arr 中元素的平均值
double average(const vector<double> &arr){double sum = 0;for (unsigned i = 0; i < arr.size(); i++){sum += arr[i];}return sum / arr.size();
} int main(){unsigned n;cout << "n = ";cin >> n;vector<double> arr(n);       // 创建数组对象cout << "请输入" << n << "个元素:" << endl;for(unsigned i = 0; i < n; i++){cin >> arr[i];} cout << "平均值 = " << average(arr) << endl;return 0;
}

注:

  • vector定义的数组对象的所有元素都会被初始化。如果数组的元素类型为基本数据类型,则所有元素都会被以0初始化;如果数组元素为类需要保证作为数组元素的类具有默认构造函数。另外,初值也可以自己指定,但只能为所有元素指定相同初值
    形式为:

    vector<元素类型>数组对象名(数组长度, 元素初值);

  • vector数组对象元素的访问方式,与普通数组具有相同的形式:

    数组对象名[下标表达式]

  • vector数组对象的名字表示的就是一个数组对象,而非数组的首地址,因为数组对象不是数组,而是封装了数组的对象。

  • vector定义的数组对象具有一个重要的成员函数 size(),它会返回数组的大小。

C++ 用vector创建数组对象相关推荐

  1. vector创建数组

    数组是继承于C语言的一种表示群体数据的方法,具有简单,高效的优点,但无论是静态数组,还是用new动态创建的数组,都难以检测下表越界的错误,在实际应用常常造成困扰.用vector创建数组对象,它通过将动 ...

  2. 动态js创建数组对象

    动态js创建数组对象 var items = []; for (var i = 0; i < 10; i++) { items.push({ id: i, level: i + '级' }) }

  3. java创建对象后花括号_java – 创建数组对象和使用花括号分配数组有什么区别?...

    在Java中,我在网上发现了一些教程,当涉及到数组时,它们的教学方式不同 例1: 使用"new"关键字创建数组对象,然后为其指定值. int[] values; values = ...

  4. java创建数组对象_java对象数组 创建对象数组,初始化对象数组

    对象数组的概念: 如果一个数组中的元素是对象类型,则称该数组为对象数组. 当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象. 对象数组的定义和使用: 对象数组 ...

  5. matlab创建数组对象,MATLAB一维数组(向量)的定义

    在 MATLAB 中,向量和矩阵主要是由数组表示的. 数组运算始终是 MATLAB 的核心内容,并且 MATLAB 区别于其他编程语言最大的优势就是数组计算.这种编程的优势使得计算程序简单.易读,程序 ...

  6. JavaScript中创建数组(Array)对象的两种方式

    一.使用Array构造函数创建数组对象 <!DOCTYPE html> <html lang="en"> <head><meta char ...

  7. iOS开发基础:OC数组对象NSArray的常用方法

    本文介绍了OC的数组对象的基本方法的使用: 因为OC的数组中存储的为对象类型,所以我们可以新建一个Person类,通过Person生成对象进行操作. 其中Person.h中的代码为: [objc] v ...

  8. JavaScript内置对象(内置对象、查文档(MDN)、Math对象、日期对象、数组对象、字符串对象)

    目录 JavaScript内置对象 内置对象 查文档 MDN Math对象 Math概述 案例一:封装自己的对象 随机数方法 random() 案例一:猜数字游戏 日期对象 Date 概述 Date( ...

  9. html怎么创建数组,js创建数组的三种方法 JS数组去重的几种常见方法

    JS数组有哪几种定义方式? js 里创建一个数组 那几种方式有什么区别吗?a = new Array(); b = []; 性能问题吗?? function clear(arr) { // 1 如何获 ...

最新文章

  1. MySql的安装、配置(转)
  2. 8 线性表-循环队列-顺序存储
  3. MySQL从5.5升级到5.6,TIMESTAMP的变化
  4. virtual析构函数(作用)
  5. FBReaderJ源码编译配置
  6. 使用idea创建项目并通过git上传到码云
  7. vue2.0_前端跨域解决方案之proxy代理
  8. 运筹系列77:开源线性规划软件clp使用简介
  9. qqxml代码天气预报qqxml代码跟url跳转的关系
  10. 我家遥控器载波波形研究
  11. arduino 鸿蒙,arduino入门开发案例(上)
  12. 金蝶EAS-BOS二开详细过程
  13. 几款入夏品牌包包可以看看
  14. 手机外接usb摄像头软件下载_手机打碟app下载安装_手机打碟软件最新版免费下载...
  15. 2岁宝宝吃饭问题网络调研
  16. GitHub快速学习-一
  17. CSS文字超出用省略号...鼠标悬停显示全部文字
  18. 判断一维对象数组的对象时间属性值是未来、今天、昨天、一周内、30天内、30天以前,并将该数组按照时间分类组成二维数组用于分时间段渲染
  19. 泰坦尼克号幸存者预测 python 详解
  20. F1巴林揭幕阿隆索拔头筹 雷克南一次进站成就季军

热门文章

  1. Jexus部署.Net Core项目
  2. 【uva 1614】Hell on the Markets(算法效率--贪心)
  3. 通过/proc/sys/net/ipv4/优化Linux下网络性能
  4. SystemCenter2012SP1实践(27)VMM和HyperV的PowerShell
  5. Dijkstra算法的c++实现
  6. swfupload--php上传说明
  7. 噩耗...............
  8. 预测人民币在2006年最终的收盘价
  9. 凸包Graham Scan算法实现
  10. Linux磁盘管理----分区格式化挂载fdisk、mkfs、mount