- 博客(24)
- 收藏
- 关注
原创 关联容器-map和multimap映射
/输出 m的所有元素//输出 m的所有元素int main()//创建一个key为int,value为string的空map//创建一个带3个元素的map//利用m2创建一个新的map对象//第二个元素的key和第一个重复,不能添加Show(m1);Show(m2);Show(m3);Show(m4);//第二个元素的key和第一个重复,能添加cout << "m5是multimap:";Show(m5);return 0;map和multimap的唯一区别是。
2025-04-08 15:50:51
589
原创 关联容器-set和multiset集合
/输出s(升序)的所有数据//输出s(降序)的所有数据int main()//创建一个空的int set集合//插入数据//相同数据插入失败//利用原来的set对象,创建一个新的set对象//同上//利用迭代器创建一个新的set对象//利用初始化列表创建一个set对象,可以无序Show(s0);//输出数据Show(s1);Show(s2);Show(s3);Show(s4);cout << "降序的集合" << endl;//创建一个降序的set集合。
2025-04-08 10:46:18
806
原创 关联容器-模板类pair数对
pair数对作为 C++ 标准库中的一个小巧而强大的工具,为我们在编程过程中处理相关数据提供了便捷的方式。从基本的定义、初始化和访问,到在函数参数、返回值以及与 STL 容器的结合应用,pair数对都展现出了其独特的优势。它不仅能让代码更加简洁明了,还能提升代码的可读性和可维护性。在日常编程中,当你遇到需要处理两个相关数据的场景时,不妨尝试使用pair数对,相信它会为你的编程工作带来意想不到的便利。让我们充分利用pair数对这一强大武器,在 C++ 的编程世界中更加游刃有余地前行。
2025-04-06 12:08:57
688
原创 容器适配器-priority queue优先级队列
/优先级队列int main()//创建一个保存int的空优先级队列cout << "q1是空的,它的数据个数为:" << q1.size() << endl;//创建一个保存int,且用deque保存内部数据的优先级队列(默认为升序)q2.push(5);//入队//入队//入队cout << "q2的数据:";while (!q2.empty())//只要q2不为空,循环继续//输出第一个元素的值(最大)q2.pop();//删除第一个元素。
2025-04-06 10:05:52
730
原创 容器适配器-queue队列
int main()//定义存放char数据的队列,内部使用默认deque容器//同q1,显示说明用deque//定义存放int数据的队列,内部使用vector容器//vector感觉可以,实际不可以,不支持头删//定义存放int数据的队列,内部使用list容器return 0;定义queue队列对象时,可以选择内部容器,默认为deque,创建一个空queue队列,后面使用时再插入数据。注意:因为vector不支持pop_front(),所以vector不能作为队列的容器。
2025-04-04 12:30:00
854
原创 容器适配器-stack栈
int main()//创建一个默认的栈,最常用//显示创建用deque保存数据的栈,和s1等价//创建用vector保存数据的栈//创建用list保存数据的栈return 0;先创建一个空的栈,然后往里面存放数据。栈作为一种简单而强大的数据结构,以其独特的后进先出特性,在众多领域展现出高效的应用价值。无论是复杂的算法实现,还是日常使用的软件功能,栈都默默发挥着重要作用。
2025-04-03 20:00:00
1321
原创 顺序容器 -forward list单链表
下表列出定义forward list对象的常用初始化方法.//输出l1的所有数据int main()//创建一个空的单链表//创建一个包含2个默认值的单链表//创建一个包含3个5的单链表//创建一个包含1,2,3,4的单链表//创建一个和l4元素相同的单链表//同l5,创建一个和l4元素相同的单链表//创建一个不包含l4第一个元素的单链表Show(l1);Show(l2);Show(l3);Show(l4);Show(l5);Show(l6);Show(l7);
2025-04-03 16:30:00
1505
原创 顺序容器 -list双向链表
下表列出定义list对象的常用初始化方法。//输出链表元素的值int main()//空链表//包含两个默认元素值的链表//包含3个4的链表//包含1,2,3,4的链表//把l4的值赋值给l5Show(l1);//输出l1的元素Show(l2);//输出l2的元素Show(l3);//输出l3的元素Show(l4);//输出l4的元素Show(l5);//输出l5的元素return 0;
2025-03-31 15:45:00
831
原创 顺序容器 -array数组,deque双端队列
array定义对象时,需要传入类型和大小,且大小不能修改。array是唯一一个如果不初始化,它的初始化是不明确的(不是0)的容器,当然如果只初始化一部分则剩余部分为0。//输出arr的所有元素int main()//a1类型为int,长度为10//a2类型为int,长度为10,默认为随机值(vscode)和普通数组一样//a3类型为int,长度为5,初始值为0//a4类型为double,长度为10Show(a1);Show(a2);//Show(a3);
2025-03-31 09:22:43
789
原创 string和vector
如下面代码int main()string s1;//默认初始化,s1是一个空串//s2被初始化为"abcde",但没有隐藏的'\0'//等同s2的方式//把s2赋值给s4//同上,把s2赋值给s5//初始化为10个'c'return 0;vector是一个模板类,使用时需要提供具体类型进行实例化。如下面的代码int main()//v1保存int的数据//v2保存double的数据return 0;下表列出定义vector对象的常用方法。
2025-03-28 11:11:02
839
原创 异常,文件,函数对象
当我们编写比较复杂的,个人难以管理的系统时,异常和命名空间最为有用。异常在工作中经常使用,但在教学中作为了解即可,作业和考试不使用它。异常就是在程序运行中发生的难以预料的、不正常的事件而导致偏离正常流程的现象。发生异常将导致正常流程不能进行,就需要对异常进行处理。异常使得我们能将问题的检测与解决过程分离开来。程序的一部分负责检测问题的出现,然后解决该问题的任务传递给程序的另一部分。检测环节无须知道问题处理模块的细节。如下,对于除0的处理。
2025-03-25 12:19:01
808
原创 小区物业收费管理系统
用户分为业主和系统管理员两种,业主可以通过注册页面添加自己的基本信息,包括姓名、楼号、单元号、房号、类型(户主/租户)、车牌号(没有车可以为空)、手机号等,可以在系统中查询水费、电费、物业费、卫生费、暖气费、停车费等收费标准及历史缴费情况。也可以在线自主缴费。自主缴费时选择对应项目并填写缴费数量(如100度电),系统会自动算出缴费总额。收费功能暂用一个二维码图片代替。系统管理员可以对物业收费项目进行增删改查等操作,也可以查询业主的缴费记录。系统采用预交费方式,如某业主电费余额为0后系统自动对其断电。
2025-03-23 16:00:00
818
原创 学校教材管理系统
3.教材分发管理:管理教材的分发流程,包括根据教学计划进行教材分发、分发记录的管理以及分发情况的统计和分析。数据结构组成:征订号+书名+出版社+作者+版次+单价+课程+专业+班级+人数+日期+操作员。(2)教材购买信息实体:征订号、书名、出版社、作者、版次、单价、班级、数量。(4)教材征订信息实体:征订号、书名、出版社、作者、版次、单价、班级、人数。(1)用户信息实体:用户编号、姓名、性别、所属专业、班级、密码、手机号。(3)教材库存信息实体:征订号、书名、出版社、作者、版次、单价、数量。
2025-03-22 12:56:21
669
原创 大数据处理技术及应用——统计出现次数最多的数据和topk问题
选择合适的数据结构和算法:根据问题要求和数据的规模,选择合适的数据结构和算法是至关重要的。Top K 问题的解决方法:解决 Top K 问题通常涉及选择合适的算法和数据结构来找到出现次数最多的 K 个数据值或者频率最高的 K 个数据值。数据预处理和清洗、并行计算技术、技术选择和算法优化、结果分析和可视化以及持续学习和更新技术等方面的经验将为我今后的大数据处理工作提供宝贵的指导和支持。数据准备和加载:收集包含需要分析的数据的数据集,并将其加载到适当的数据结构中,例如列表、数组、字典或数据库表。
2025-03-22 12:39:11
700
原创 继承与派生
派生类生成的过程主要经历了3个步骤:吸收基类成员,改造基类成员,新增加派生类成员。其中,吸收基类成员就是实现代码的重用过程,而改造基类成员和新增派生类成员,其实就是对原有代码进行扩充的过程。
2025-03-18 11:59:22
1014
原创 运算符重载,浅拷贝和深拷贝
运算符重载是一种形式的C++多态,它使得对象操作更直观,本质上也是属于函数重载。实际上,我们已经在不知不觉之中使用了运算符重载。例如,加法运算符“+”可以对整数相加、也可以对string对象相加,如5+8;s1+s2;这是因为C++已经对string类重载了“+”运算符。又例如,C++对“<<”和“>>”进行了重载,用户在不同的场景下使用它们,作用是不同的。对于位运算而言,“<<”运算符是左移运算符,“>>”运算符是右移运算符。
2025-03-18 11:02:17
562
原创 c++类和对象
class 类名private:成员属性或成员函数protected:成员属性或成员函数public:成员属性或成员函数(1)class是声明类的关键字,class后跟类名。类名一般首字母大写。(2)类包括成员属性和成员函数。成员属性代表对象的属性;成员函数实现对象的行为。(3)private、protected和public关键字称为访问权限符,它规定了类中成员的访问属性。这3个关键字可以按任意顺序出现。默认时为私有的(private)。例:声明一个学生类。
2025-03-17 11:20:41
799
原创 string,new/delete,范围for
/第一种方式,字符串赋值//第二种方式,字符串初始化//第三种方式 ,用字符串构造stringreturn 0;第一种方式先定义了string变量s1,再为string变量s1赋值;第二种方式直接使用“=”为string变量s2赋值;第三种方式在定义string变量时,将初始值放在“{ }”运算符中,使用“{ }”运算符中的字符串为变量初始化;
2025-03-16 22:45:00
828
原创 了解函数重载
函数重载(函数多态),让您能够使用多个同名的函数,"多态"指的是有多种形式,通常使用函数重载。函数重载的关键是函数的参数列表--也称为函数的特征标。C++允许定义同名的函数,前提是它们的参数列表(特征标)不同。参数数目或参数类型不同则参数列表(特征标)不同。求2个或3个整数的和,求2个或3个双精度浮点数的和。。如下,因此编译器不知该调用哪个函数,故不能重载,类型引用和类型本身视为同一个参数。注意:不能仅仅通过返回值类型不同进行函数重载。
2025-03-16 16:13:36
348
原创 c语言基础
数组的定义:数据类型 数组名[数组长度];数组通过下标访问每个元素,下标从0开始,注意不要越界。数组长度公式sizeof(表达式):求表达式占用的字节数一维数组arr,求其长度的公式:sizeof(arr)/sizeof(arr[0])二维数组的定义: 数据类型 数组名[行数][列数];二维数组也是通过下标访问其中的元素,且下标从0开始,例如将红色格子的值修改成100,应该写成:指针变量定义: 类型 * 变量名;short b;int c;
2025-03-16 10:53:37
230
原创 C语言的指针,swap数据交换
Swap传数据就对指针的简单理解,Swap传数据一般情况有:1.值传递,2.址传递,但未解引用,3.址传递,解引用。通过地址间接改变数据。野指针: 也称悬空指针, 悬挂指针, 你没有访问权限的地址 ( 指针 )。这种情况下程序会出错,原因是有野指针:tmp,tmp的值是随机值,结论:调用函数通过函数想修改实参值必须要:1.传指针,2.解引用。注意:指针在赋值时类型必须相同\。获取该变量的地址,&为取地址符。
2024-03-14 21:06:53
538
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人