
C++
文章平均质量分 53
能量满格^O^
这个作者很懒,什么都没留下…
展开
-
第一个只出现一次的字符c++全代码哈希表
#include <iostream>#include <unordered_map>using namespace std;char First(string s){ unordered_map<char,int> hash; for(auto &c:s) { hash[c]++; } for(auto &c:s) { if(hash[c] == 1) return c; } retu原创 2021-09-22 23:43:58 · 191 阅读 · 0 评论 -
赛码网答题
现在现在有一台机器,这台机器可以接收两种形式任务:(1)任务列表,任务列表里面有N个任务,对于第i个任务,机器在Ti时间开始执行,并在1个单位时间内做完。(2)临时任务,机器可以在任意时间接收一个临时任务,但任务列表里面的任务优先级要高于临时任务,也就是说当机器空闲的时候才会执行临时任务。现在机器已经接收一个任务列表。接下来会有M个临时任务,我们想知道每个临时任务何时被执行。为了简化问题我们可以认为这M个临时任务是独立无关即任务是可以同时执行的,互不影响的。#include <iostream&g原创 2021-09-08 20:49:50 · 581 阅读 · 0 评论 -
c++之list排序案例
案例描述:将Person自定义数据类型进行排序,Person中属性有姓名、年龄、身高排序规则:按照年龄进行升序,如果年龄相同按照身高进行降序#include <iostream>using namespace std;#include <list>#include <string>class Person {public: Person(string name, int age , int height) { m_Name = name; m_A原创 2021-05-10 09:54:33 · 529 阅读 · 0 评论 -
c++提高之、评委打分(vector+deque容器练习)
要求有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。步骤:创建五名选手,放到vector中遍历vector容器,取出来每一个选手,执行for循环,可以把10个评分打分存到deque容器中sort算法对deque容器中分数排序,去除最高和最低分deque容器遍历一遍,累加总分获取平均分#include <iostream>using namespace std;#include <string>#includ原创 2021-05-09 10:42:56 · 203 阅读 · 0 评论 -
文件操作
/*## 5 文件操作程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过**文件可以将数据持久化**C++中对文件操作需要包含头文件 < fstream >文件类型分为两种:1. **文本文件** - 文件以文本的**ASCII码**形式存储在计算机中2. **二进制文件** - 文件以文本的**二进制**形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:1. ofstream:写操作2. ifstream: 读操作3. fstre原创 2021-04-30 10:17:29 · 296 阅读 · 0 评论 -
c++基础之、通讯录
需要实现的功能如下:添加联系人:添加新人,包括(姓名,性别,年龄,联系电话,地址)最多记录1000条显示联系人:显示通讯录所有联系人信息删除联系人:按照姓名进行删除指定联系人查找联系人:按照姓名进行查看指定联系人信息修改联系人:按照姓名重新修改指定联系人清空联系人:清空通信录中所有信息退出联系人:退出当前使用的通讯录//通讯录#include <iostream>#include <string>using namespace std;#define MA原创 2021-04-30 10:03:42 · 160 阅读 · 0 评论 -
c++核心之四、类和对象之7、多态
4.7 多态4.7.1 多态的基本概念多态是C++面向对象三大特性之一多态分为两类静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名动态多态: 派生类和虚函数实现运行时多态静态多态和动态多态区别:静态多态的函数地址早绑定 - 编译阶段确定函数地址动态多态的函数地址晚绑定 - 运行阶段确定函数地址下面通过案例进行讲解多态class Animal{public: //Speak函数就是虚函数 //函数前面加上virtual关键字,变成虚函数,那么编译器在编译的时候就原创 2021-04-29 10:27:09 · 113 阅读 · 0 评论 -
c++核心之四、类和对象之6、继承
4.6 继承继承是面向对象三大特性之一我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。这个时候我们就可以考虑利用继承的技术,减少重复代码4.6.1 继承的基本语法例如我们看到很多网站中,都有公共的头部,公共的底部,甚至公共的左侧列表,只有中心内容不同接下来我们分别利用普通写法和继承的写法来实现网页中的内容,看一下继承存在的意义以及好处普通实现://Java页面class Java {public: void header() { cout <&l原创 2021-04-29 10:18:25 · 121 阅读 · 0 评论 -
c++核心之四、类和对象之5、运算符重载
4.5 运算符重载运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型4.5.1 加号运算符重载作用:实现两个自定义数据类型相加的运算class Person {public: Person() {}; Person(int a, int b) { this->m_A = a; this->m_B = b; } //成员函数实现 + 号运算符重载 Person operator+(const Person& p) { Pe原创 2021-04-29 10:13:26 · 127 阅读 · 0 评论 -
c++核心之四、类和对象之4、友元
4.4 友元生活中你的家有客厅(Public),有你的卧室(Private)客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去但是呢,你也可以允许你的好闺蜜好基友进去。在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术友元的目的就是让一个函数或者类 访问另一个类中私有成员友元的关键字为 friend友元的三种实现全局函数做友元//告诉编译器 goodGay全局函数 是 Building类的好朋友,可以访问类中的私有内容friend原创 2021-04-29 10:10:07 · 163 阅读 · 0 评论 -
c++核心之四、类和对象3、C++对象模型和this指针
4.3 C++对象模型和this指针4.3.1 成员变量和成员函数分开存储在C++中,类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上空对象占用1字节内存空间,不是空对象就占用4字节class Person {public: Person() { mA = 0; } //非静态成员变量占对象空间 int mA; //静态成员变量不占对象空间 static int mB; //非静态成员函数也不占对象空间,所有函数共享一个函数实例 void func() {原创 2021-04-29 10:07:57 · 149 阅读 · 0 评论 -
c++核心之四、类和对象之2、对象的初始化和清理
4.2 对象的初始化和清理生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候也会删除一些自己信息数据保证安全C++中的面向对象来源于生活,每个对象也都会有初始设置以及对象销毁前的清理数据的设置。4.2.1 构造函数和析构函数对象的初始化和清理也是两个非常重要的安全问题一个对象或者变量没有初始状态,对其使用后果是未知同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题c++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。原创 2021-04-29 10:05:53 · 108 阅读 · 0 评论 -
c++核心之四、类和对象之1、封装
4 类和对象C++面向对象的三大特性为:封装、继承、多态C++认为万事万物都皆为对象,对象上有其属性和行为例如:人可以作为对象,属性有姓名、年龄、身高、体重…,行为有走、跑、跳、吃饭、唱歌…车也可以作为对象,属性有轮胎、方向盘、车灯…,行为有载人、放音乐、放空调…具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类4.1 封装4.1.1 封装的意义封装是C++面向对象三大特性之一封装的意义:将属性和行为作为一个整体,表现生活中的事物将属性和行为加以权限控制封装意义一:原创 2021-04-29 10:04:10 · 133 阅读 · 0 评论 -
c++核心之三、函数提高
3 函数提高3.1 函数默认参数在C++中,函数的形参列表中的形参是可以有默认值的。语法:返回值类型 函数名 (参数= 默认值){}示例://1. 如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都要有默认值int func(int a, int b = 10, int c = 10) { return a + b + c;}//2. 如果函数声明有默认值,函数实现的时候就不能有默认参数//函数声明和实现 只能有一个有默认参数,不能都有int func2(int a =原创 2021-04-29 10:00:01 · 106 阅读 · 0 评论 -
c++核心之二、引用
2 引用2.1 引用的基本使用**作用: **给变量起别名语法: 数据类型 &别名 = 原名示例:int main() { int a = 10; int &b = a; cout << "a = " << a << endl; cout << "b = " << b << endl; b = 100; cout << "a = " << a << end原创 2021-04-29 09:59:04 · 98 阅读 · 0 评论 -
c++之、职工管理系统
6.1 要求职工管理系统可以用来管理公司内所有员工的信息,利用C++来实现一个基于多态的职工管理系统公司中职工分为三类:普通员工、经理、老板。显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责普通员工职责:完成经理交给的任务经理职责:完成老板交给的任务,并下发任务给员工老板职责:管理公司所有事务管理系统中需要实现的功能如下:退出管理程序:退出当前管理系统增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号显示职工信息:显示公司内部所有职工的信原创 2021-04-28 19:17:11 · 549 阅读 · 0 评论 -
C++核心编程之一、内存分区模型
C++核心编程1 内存分区模型1.1 程序运行前1.2 程序运行后1.3 new操作符本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1 内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量static以及常量【还包括常量区、字符串常量(用双引号引起来的)和const修饰的常量】栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程原创 2021-04-27 10:05:58 · 113 阅读 · 0 评论