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

数学系C++ 类与对象 STL(九)

目录

目录

面向对象:py,c艹,Java都是,但c是面向过程

特征:

对象

内敛成员函数【是啥】:

构造函数和析构函数

构造函数

复制构造函数/拷贝构造函数:

【……】 实参与形参的传递方式:值传递,引用传递,地址传递【带扩充】

匿名对象

析构函数

STL

 顺序容器/序列容器(Sequential Containers)

关联容器(Associative Containers)按排序方式存储数据,就像词典一样  方便搜索

容器适配器(Associative adapters)(栈,队,优先队列)

对容器的算法

容器的成员函数



面向对象:py,c艹,Java都是,但c是面向过程

特征:

抽象、封装、继承、多态

继承机制:

允许程序员在保持原有类特性的基础上,进行更具体、更详细的说明。

多态:

同一段程序能处理多种类型对象。在 C++ 中,多态有强制多态(如类型转换)、重载多态(如函数重载、运算符重载)、类型参数化和虚函数、模板等。

对象

成员函数既可以访问目的对象的私有成员,也可以访问所在类的其它对象的私有成员。

内敛成员函数【是啥】:

使用内联函数可以减少调用开销,提高效率,但只适合相当简单的函数。

构造函数和析构函数

构造函数:负责对象初始化。

析构函数:在对象被释放时自动调用的函数。

构造函数与析构函数是两类特殊的成员函数,每个类都有。

构造函数

class Clock{public:Clock(int x, int y, int z); // 构造函数
void SetTime(int h=0, int m=0, int s=0);void ShowTime();private:int hour, minute, second;};
// 构造函数的定义
Clock::Clock(int x, int y, int z){ hour=x; minute=y; second=z; }

注意:构造函数前不能加数据类型或 void!

复制构造函数/拷贝构造函数:

一类特殊的构造函数,将已有对象的指复制给其它对象

例:自定义复制构造函数:

Point::Point(Point & p) // 复制构造函数的定义
{x=p.x; y=p.y;cout << "自定义复制构造函数被调用!" << endl;}.

默认的复制构造函数何时调用?用=赋值时

int main()
{Point A(1,2);
Point B(A); // 用 A 初始化 B,自定义复制构造函数被调用
Point C=A; // 与上面语句完全一样
Point D;
D=A; // 赋值,默认复制构造函数被调用!
cout << B.getx() << endl;return 0;}

 对象可以作为成员函数和非成员函数的参数

【……】 实参与形参的传递方式:值传递,引用传递,地址传递【带扩充】
匿名对象

非匿名对象构造函数缺省的话不要小括号

Clock c2; // OK,全部使用缺省值时不要加小括号!
Clock c2(); // ERROR

 匿名对象要

析构函数

► 析构函数的函数名由类名前加“~”组成

► 析构函数没有返回值

► 析构函数在对象生存期即将结束时被自动调用

► 析构函数不接收任何参数

► 若没有自定义析构函数,系统会自动生成一个缺省析构函数(函数体为空,如:~Point() { } )

————————————————————以上为第九讲

STL

 顺序容器/序列容器(Sequential Containers)

array 数组,长度不能改变

vector 只能在最后面插入或删除数据

deque 与 vector 类似,但允许在最前面插入或删除数据

list 双向链表,可在任意位置插入或删除数据f

orward_list 与 list 类似,但是单向的,只能沿一个方向访问

string 字符串,与 vector 类似,但存储的是字符

关联容器(Associative Containers)按排序方式存储数据,就像词典一样  方便搜索

set 存储互不相同的数据,插入数据时进行排列

unordered_set 与 set 类似,但按 Hash 值排序

map 存储“键-值”对,按唯一的键排序

unordered_map 与 map 类似,但按“键”的 Hash 值排序

muti:

multiset 与 set 类似,但允许有相同的数据

unordered_multiset 与 unordered_set 类似,但允许有相同的数据

multimap 与 map 类似,但不要求“键”唯一

unordered_multimap 与 unordered_map 类似,但不要求“键”唯一

容器适配器(Associative adapters)(栈,队,优先队列)

顺序适配器和关联适配器的变种,增加一些特殊功能

stack 栈,按后进先出(LIFO)方式存储数据

queue 队列,按先进先出(FIFO)方式存储数据

priority_queue 队列,但能保证最大元素总在最前

对容器的算法

find 查找指定的值

find_if 根据条件查找

reverse 反转

remove_if 根据条件删除相应的数据

transform 根据用户给定的方法对数据进行交换

容器的成员函数

begin() 返回开始迭代器end() 返回结束迭代器

size() 返回实际元素个数

capacity() 返回当前容量

empty() 判断是否为空

max_size() 返回元素个数的最大值

front() 返回第一个元素的引用

back() 返回最后一个元素的引用

push_back() 在序列的尾部添加一个元素

pop_back() 移出序列尾部的元素

clear() 移出所有的元素,容器大小变为 0

resize() 改变实际元素的个数

at() 使用索引访问元素,会进行边界检查

assign() 用新元素替换原有内容

insert() 在指定的位置插入一个或多个元素

erase() 移出一个元素或一段元素

swap() 交换两个容器的所有元素

data() 返回包含元素的内部数组的指针【?】

sort() 对元素进行排序

这里仅列出部分成员函数。† 并非所有容器都具有这些成员函数。† 容器不仅使用方便,而且效率也非常高,可代替数组。† 优先使用 vector 和 string

————————————————————————以上为第16讲

相关文章:

数学系C++ 类与对象 STL(九)

目录 目录 面向对象&#xff1a;py&#xff0c;c艹&#xff0c;Java都是,但c是面向过程 特征&#xff1a; 对象 内敛成员函数【是啥】&#xff1a; 构造函数和析构函数 构造函数 复制构造函数/拷贝构造函数&#xff1a; 【……】 实参与形参的传递方式&#xff1a;值…...

CSS技巧专栏:一日一例 2.纯CSS实现 多彩边框按钮特效

大家好,今天是 CSS技巧一日一例 专栏的第二篇《纯CSS实现多彩边框按钮特效》 先看图: 开工前的准备工作 正如昨日所讲,为了案例的表现,也处于书写的习惯,在今天的案例开工前,先把昨天的准备工作重做一遍。 清除浏览器的默认样式定义页面基本颜色设定body的样式清除butt…...

JCEF 在idea 开发 java 应用

JCEF&#xff08;Java Chromium Embedded Framework&#xff09;是一个Java库&#xff0c;用于在Java应用程序中嵌入Chromium浏览器引擎。如果您想在IDEA开发环境中使用JCEF&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1. 下载JCEF库文件&#xff1a;您可以从JCEF的官…...

绝区伍--2024年AI发展路线图

2024 年将是人工智能具有里程碑意义的一年。随着新模式、融资轮次和进步以惊人的速度出现&#xff0c;很难跟上人工智能世界发生的一切。让我们深入了解 2024 年可能定义人工智能的关键事件、产品发布、研究突破和趋势。 2024 年第一季度 2024 年第一季度将推出一些主要车型并…...

C++:.front()函数作用

在C中&#xff0c;.front() 函数是容器&#xff08;如 std::vector、std::deque、std::list 的某些实现等&#xff09;的成员函数&#xff0c;用于访问容器中的第一个元素。这个函数返回对容器中第一个元素的引用&#xff08;对于非const容器&#xff09;或const引用&#xff0…...

Linux系统备份工具TimeShift

Linux系统备份 Linux系统备份工具TimeShift Linux系统备份工具TimeShift 0. 前言1. 安装2. 启动3. 使用法一、图形界面操作&#xff08;方便&#xff09;法二、终端命令操作&#xff08;高端&#xff09; Linux系统备份工具TimeShift Linux系统备份工具TimeShift 0. 前言 Time…...

Google重大更新--解读Android Auto认证4.3

Google在今年五月更新了Android Auto 4.2.2版本&#xff0c;而在2024年7月他们推出了Android Auto 4.3版本&#xff0c;这是自2023年9月以来对Android Auto 4.2版本的一次重大更新。 为了确保合规性和顺利认证&#xff0c;OEM和Tire1必须确保PDK组件版本与正在认证的主机的Rece…...

scala基础

scala基础&#xff1a; hello world: 写scala可运行文件的注意事项1、如果一个scala文件要运行&#xff0c;class要改成object2、如果是class&#xff0c;就仅单纯代表一个类&#xff0c;如果是object代表的是单例对象3、scala语法中&#xff0c;一句话结束不需要加分号4、scal…...

小红书选品中心商家采集 小红书商家电话采集软件

可采集名称销量评分联系方式等 需要有1000粉丝以上已实名认证过的小红书达人才可以使用 以下是一个示例程序&#xff0c;可以用于批量获取小红书选品中心商家的信息&#xff1a; import requestsdef get_merchants(page_num):url f"https://www.xiaohongshu.com/selec…...

JavaScript基础: JavaScript 数字类型

JavaScript 中的数字类型是用来表示数值的数据类型。JavaScript 的数字类型是基于 IEEE 754 标准的双精度浮点数格式&#xff0c;这意味着它可以表示非常大和非常小的数值&#xff0c;以及小数。 数字字面量 在 JavaScript 中&#xff0c;数字可以直接以字面量的形式书写&…...

【网络安全】漏洞挖掘之Spring Cloud注入漏洞

漏洞描述 Spring框架为现代基于java的企业应用程序(在任何类型的部署平台上)提供了一个全面的编程和配置模型。 Spring Cloud 中的 serveless框架 Spring Cloud Function 中的 RoutingFunction 类的 apply 方法将请求头中的“spring.cloud.function.routing-expression”参数…...

面试官:MySQL死锁是什么,如何解决?

MySQL死锁概述 定义&#xff1a;多个操作相互等待对方释放资源&#xff0c;导致无法继续执行的情况。场景&#xff1a;通常发生在多个事务同时试图锁定对方已锁定的资源时。 MySQL锁的分类 粒度分类&#xff1a; 表级锁&#xff1a;锁定整个表&#xff0c;简单但并发能力低。…...

CSS原子化

目录 一、定义 二、原子化工具 2.1、tailwind 2.1.1、以PostCss插件形式安装 2.1.2、不依赖PostCss安装 2.1.3、修改原始配置 2.2、unocss 三、优缺点 3.1、优点 3.2、缺点 一、定义 定义&#xff1a;使用一系列的助记词&#xff0c;利用类名来代表样式。 二、原子化…...

【Python的pip配置、程序运行、生成exe文件】

Python的pip配置、程序运行、生成exe文件 一、安装Python 通过官网下载对应的版本&#xff0c;安装即可。 下载地址&#xff1a;https://www.python.org/downloads/ Python标准库查看&#xff08;Python自带库&#xff09; Python 标准库文档 安装Python的时候&#xff0c…...

神经网络习题

不具有权重共享的网络是&#xff1a; **多层感知机&#xff08;Multilayer Perceptron&#xff0c;MLP&#xff09;&#xff1a; ** 特点&#xff1a;每一层的每一个神经元都与上一层的每一个神经元全连接&#xff0c;权重独立于每个连接&#xff0c;不存在权重共享。 权重共享…...

deepstream段错误

&#x1f610; 错误&#xff1a; 探针中由于使用了pyds.get_nvds_buf_surface(hash(gst_buffer), frame_meta.batch_id)导致的段错误&#xff08;segmentation fault&#xff09;。 解决方式&#xff1a;...

《梦醒蝶飞:释放Excel函数与公式的力量》10.1.1函数简介

10.1.1函数简介 BIN2DEC函数是Excel中用于将二进制数转换为十进制数的函数。它在处理二进制数时非常有用&#xff0c;尤其是在电子工程、计算机科学等领域。 10.1.2函数语法&#xff1a; BIN2DEC(number) number&#xff1a;这是要转换的二进制数&#xff0c;必须是以字符串…...

Bert 变种, T5模型

NLP-预训练模型-2019-NLU&#xff1a;DistilBERT【 BERT模型压缩】【模型大小减小了40%&#xff08;66M&#xff09;&#xff0c;推断速度提升了60%&#xff0c;但性能只降低了约3%】_distillbert-CSDN博客 https://zhuanlan.zhihu.com/p/673535548 大语言模型系列-T5_t5模型…...

技术赋能政务服务:VR导视与AI客服在政务大厅的创新应用

在数字化转型的浪潮中&#xff0c;政务大厅作为服务民众的前沿阵地&#xff0c;其服务效率和质量直接影响着政府形象和民众满意度。然而&#xff0c;许多政务大厅仍面临着缺乏智能化导航系统的挑战&#xff0c;这不仅增加了群众的办事难度&#xff0c;也降低了服务效率。维小帮…...

大模型备案全网最详细流程【附附件】

本文要点&#xff1a;大模型备案最详细说明&#xff0c;大模型备案条件有哪些&#xff0c;《算法安全自评估报告》模板&#xff0c;大模型算法备案&#xff0c;大模型上线备案&#xff0c;生成式人工智能(大语言模型)安全评估要点&#xff0c;网信办大模型备案。 大模型备案安…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

高分辨率图像合成归一化流扩展

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 摘要 我们提出了STARFlow&#xff0c;一种基于归一化流的可扩展生成模型&#xff0c;它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流&#xff08;TARFlow&am…...

Mac flutter环境搭建

一、下载flutter sdk 制作 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 1、查看mac电脑处理器选择sdk 2、解压 unzip ~/Downloads/flutter_macos_arm64_3.32.2-stable.zip \ -d ~/development/ 3、添加环境变量 命令行打开配置环境变量文件 ope…...

C++ 类基础:封装、继承、多态与多线程模板实现

前言 C 是一门强大的面向对象编程语言&#xff0c;而类&#xff08;Class&#xff09;作为其核心特性之一&#xff0c;是理解和使用 C 的关键。本文将深入探讨 C 类的基本特性&#xff0c;包括封装、继承和多态&#xff0c;同时讨论类中的权限控制&#xff0c;并展示如何使用类…...

P10909 [蓝桥杯 2024 国 B] 立定跳远

# P10909 [蓝桥杯 2024 国 B] 立定跳远 ## 题目描述 在运动会上&#xff0c;小明从数轴的原点开始向正方向立定跳远。项目设置了 $n$ 个检查点 $a_1, a_2, \cdots , a_n$ 且 $a_i \ge a_{i−1} > 0$。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时&#xff0…...

Pandas 可视化集成:数据科学家的高效绘图指南

为什么选择 Pandas 进行数据可视化&#xff1f; 在数据科学和分析领域&#xff0c;可视化是理解数据、发现模式和传达见解的关键步骤。Python 生态系统提供了多种可视化工具&#xff0c;如 Matplotlib、Seaborn、Plotly 等&#xff0c;但 Pandas 内置的可视化功能因其与数据结…...