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

// an array of int

// an array of int
// an array of double

// an array of int, size 0
// an array of 8 int elements
// an array of 8 int elements, each set to 10

// use a string object for name

实现代码。要使用String类,您必须在项目中包含实现文件string1.cpp。
对于考试分数,存在类似的选择。可以使用一个定长数组,这限制了数组的长度;可以使用动态内存
分配并提供大量的支持代码;也可以设计一个使用动态内存分配的类来表示该数组;还可以在标准C++库
中查找 ·个能够表示这种数据的类。
当然,如果C++库提供了合适的类,实现起来将更简单。C++库确实提供了一个这样的类,它就是
valarray .

14.1.1 valarray 类简介

valarray 类是由头文件 valarray支持的。顾名思义,这个类用于处理数值(或具有类似特性的类),它
支持诸如将数组中所有元素的值相加以及在数组中找出最大和最小的值等操作。valarray 被定义为一个模
板类,以便能够处理不同的数据类型。本章后面将介绍如何定义模板类,但就现在而言,读者只需知道如
何使用模板类即可。
模板特性意味着声明对象时,必须指定具体的数据类型。因此,使用valarray类来声明一个对象时,
需要在标识符valarray 后面加上一对尖括号,并在其中包含所需的数据类型:
valarray<int> q_values;
valarray<double> weights;
这是读者需要学习的惟…新句法,它非常简单。
类特性意味着要使用 valarray 对象,需要了解这个类的构造函数和其他类方法。下面是几个使用其构
造函数的例子:
double gpa(5] - (3.1, 3.5, 3.8, 2.9, 3.3);
valarray<double> v1;
valarray<int> v2(8);
valarray<int> v3(10,8);
valarray<double> v4 (gpa, 4); // an array of 4 elements//initialized to the first 4 elements of gpa
从中可知,可以创建长度为零的空数组、指定长度的空数组、所有元素都被初始化为指定值的数组以
及用常规数组中的值进行初始化的数组。
下面是这个类的一些方法:
● operator[]:让您能够访问数组中的元素。
● size :返回数组中包含的元素数。
● sum:返回所有元素的总和。
● max:返回最大的元素。
min:返回最小的元素。
还有很多其他的方法,其中的一些将在第16章介绍;但就这个例子而言,上述方法足够了。

14.1.2 Student类的设计

至此,已经确定了Student类的设计计划:使用一个string对象来表示姓名,使用一个valarray<double>
来表示考试分数。那么如何设计呢?读者可能想以公有的方式从这两个类派生出Student类,这将是多重
公有继承,C++允许这样做,但在这里并不合适,因为学生与这些类之间的关系不是is-a模型。学生不是
姓名,也不是一组考试成绩。这里的关系是has-a,学生有姓名,也有一组考试分数。通常,用于建立
has-a 关系的C++技术是组合(包含),即创建一个包含其他类对象的类。例如,可以将Student类声明为
如下所示:
class Student

private:
string name;
valarray<double> scores; // use a valarray<double> object for scores

1;

相关文章:

  • LCD-LMD-PSO-ELM的电能质量分类,LCD特征提取,LMD特征提取,粒子群算法优化极限学习机
  • Docker部署Golang服务
  • leaflet学习笔记-带过滤的图例(九)
  • uniapp开发小程序—scroll-view实现内容滚动时, 标题也滚动
  • ESP32-HTTP_webServer库(Arduino)
  • Cacti 前台SQL注入漏洞复现(CVE-2023-39361)
  • Unity中URP下的 额外灯 逐像素光 和 逐顶点光
  • props传值
  • 自然语言处理的崛起:从初步分析到深度理解
  • PLC从HTTP服务端获取JSON文件,解析数据到寄存器
  • Linux编辑器---vim
  • 2.2.1.1-一个关于定投的故(姿)事(势)
  • CloudPanel RCE漏洞复现(CVE-2023-35885)
  • 探索设计模式的魅力:一次设计,多次利用,深入理解原型模式的设计艺术
  • EasyExcelFactory 导入导出功能的实战使用
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • co模块的前端实现
  • EventListener原理
  • If…else
  • JAVA_NIO系列——Channel和Buffer详解
  • java8 Stream Pipelines 浅析
  • Java程序员幽默爆笑锦集
  • Java面向对象及其三大特征
  • js ES6 求数组的交集,并集,还有差集
  • k8s如何管理Pod
  • leetcode-27. Remove Element
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • October CMS - 快速入门 9 Images And Galleries
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Webpack入门之遇到的那些坑,系列示例Demo
  • WePY 在小程序性能调优上做出的探究
  • 类orAPI - 收藏集 - 掘金
  • 入口文件开始,分析Vue源码实现
  • 设计模式 开闭原则
  • 双管齐下,VMware的容器新战略
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (3)(3.5) 遥测无线电区域条例
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (LeetCode) T14. Longest Common Prefix
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (vue)页面文件上传获取:action地址
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (译)计算距离、方位和更多经纬度之间的点
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)jdk与jre的区别
  • (转)我也是一只IT小小鸟
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)