C++ 用vector创建数组对象
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创建数组对象相关推荐
- vector创建数组
数组是继承于C语言的一种表示群体数据的方法,具有简单,高效的优点,但无论是静态数组,还是用new动态创建的数组,都难以检测下表越界的错误,在实际应用常常造成困扰.用vector创建数组对象,它通过将动 ...
- 动态js创建数组对象
动态js创建数组对象 var items = []; for (var i = 0; i < 10; i++) { items.push({ id: i, level: i + '级' }) }
- java创建对象后花括号_java – 创建数组对象和使用花括号分配数组有什么区别?...
在Java中,我在网上发现了一些教程,当涉及到数组时,它们的教学方式不同 例1: 使用"new"关键字创建数组对象,然后为其指定值. int[] values; values = ...
- java创建数组对象_java对象数组 创建对象数组,初始化对象数组
对象数组的概念: 如果一个数组中的元素是对象类型,则称该数组为对象数组. 当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象. 对象数组的定义和使用: 对象数组 ...
- matlab创建数组对象,MATLAB一维数组(向量)的定义
在 MATLAB 中,向量和矩阵主要是由数组表示的. 数组运算始终是 MATLAB 的核心内容,并且 MATLAB 区别于其他编程语言最大的优势就是数组计算.这种编程的优势使得计算程序简单.易读,程序 ...
- JavaScript中创建数组(Array)对象的两种方式
一.使用Array构造函数创建数组对象 <!DOCTYPE html> <html lang="en"> <head><meta char ...
- iOS开发基础:OC数组对象NSArray的常用方法
本文介绍了OC的数组对象的基本方法的使用: 因为OC的数组中存储的为对象类型,所以我们可以新建一个Person类,通过Person生成对象进行操作. 其中Person.h中的代码为: [objc] v ...
- JavaScript内置对象(内置对象、查文档(MDN)、Math对象、日期对象、数组对象、字符串对象)
目录 JavaScript内置对象 内置对象 查文档 MDN Math对象 Math概述 案例一:封装自己的对象 随机数方法 random() 案例一:猜数字游戏 日期对象 Date 概述 Date( ...
- html怎么创建数组,js创建数组的三种方法 JS数组去重的几种常见方法
JS数组有哪几种定义方式? js 里创建一个数组 那几种方式有什么区别吗?a = new Array(); b = []; 性能问题吗?? function clear(arr) { // 1 如何获 ...
最新文章
- MySql的安装、配置(转)
- 8 线性表-循环队列-顺序存储
- MySQL从5.5升级到5.6,TIMESTAMP的变化
- virtual析构函数(作用)
- FBReaderJ源码编译配置
- 使用idea创建项目并通过git上传到码云
- vue2.0_前端跨域解决方案之proxy代理
- 运筹系列77:开源线性规划软件clp使用简介
- qqxml代码天气预报qqxml代码跟url跳转的关系
- 我家遥控器载波波形研究
- arduino 鸿蒙,arduino入门开发案例(上)
- 金蝶EAS-BOS二开详细过程
- 几款入夏品牌包包可以看看
- 手机外接usb摄像头软件下载_手机打碟app下载安装_手机打碟软件最新版免费下载...
- 2岁宝宝吃饭问题网络调研
- GitHub快速学习-一
- CSS文字超出用省略号...鼠标悬停显示全部文字
- 判断一维对象数组的对象时间属性值是未来、今天、昨天、一周内、30天内、30天以前,并将该数组按照时间分类组成二维数组用于分时间段渲染
- 泰坦尼克号幸存者预测 python 详解
- F1巴林揭幕阿隆索拔头筹 雷克南一次进站成就季军
热门文章
- Jexus部署.Net Core项目
- 【uva 1614】Hell on the Markets(算法效率--贪心)
- 通过/proc/sys/net/ipv4/优化Linux下网络性能
- SystemCenter2012SP1实践(27)VMM和HyperV的PowerShell
- Dijkstra算法的c++实现
- swfupload--php上传说明
- 噩耗...............
- 预测人民币在2006年最终的收盘价
- 凸包Graham Scan算法实现
- Linux磁盘管理----分区格式化挂载fdisk、mkfs、mount