
Are You OKay C/C++
文章平均质量分 66
关于C++的一些题目、知识点、代码,希望你们能够喜欢这个专栏
源代码•宸
我们终此一生,就是要摆脱他人的期待,找到真正的自己
展开
-
C++复盘(二)——基于多态的职工管理系统
workerManager.cpp4、菜单功能功能描述:与用户的沟通界面workerManager.cppempManagementSystem.cppworkerManager.cppempManagementSystem.cppworker.h创建普通员工类employee.hemployee.cpp创建经理类经理类继承职工抽象类,并重写父类中纯虚函数,和普通员工类似manager.cpp创建老板类老板类继承职工抽象类,并重写父类中纯虚函数,和普通员工类似原创 2024-04-28 17:27:39 · 772 阅读 · 0 评论 -
C++复盘(一)
不加srand()的rand()生成的是伪随机数,一直都是42goto语句总结:所有指针类型在32位操作系统下是4个字节野指针:指针变量指向非法的内存空间总结:空指针和野指针都不是我们申请的空间,因此不要访问技巧:看const右侧紧跟着的是指针还是常量, 是指针就是常量指针,是常量就是指针常量结构体属于用户自定义的数据类型,允许用户存储不同的数据类型用const来防止误操作总结:通过引用参数产原创 2024-04-28 17:27:02 · 1042 阅读 · 0 评论 -
高级算法设计——网络流问题
网络流问题HDU3549EK算法求解最大流HDU1532法一、EK算法求解法二、Dinic算法求解原创 2022-10-18 15:48:25 · 510 阅读 · 0 评论 -
图的存储——链式前向星
C++代码如下:样例运行结果如下:原创 2022-10-18 10:31:32 · 429 阅读 · 0 评论 -
计算两个任何长度的整数之和(自定义函数通过数组装超大整数)
我们知道C语言int所能表示的数字范围是-2~ 2-1,所能表示的最大整数为2147483647,那么long long所能表示的数字范围是-2~ 2-1,所能表示的最大整数为9223372036854775807,那么如果我们想计算更大的数据呢,那C的基本数据类型就做不到了,所以这里我们需要数组。...原创 2022-08-16 14:13:19 · 457 阅读 · 0 评论 -
FILE结构体在stdio.h头文件源码里的详细代码
在这个结构体中包含文件缓冲区的地址、在缓冲区中当前存取字符的位置、对文件的操作模式(是读还是写)、文件的名称、文件的状态(是否遇到文件结束标志)等基本信息。那么消去碍眼的条件编译#ifdef等玩意,我们就可以得到纯粹的FILE的结构体。我终于在源码里面找到了FILE结构体的定义!这里就涉及到了预处理的条件编译语句。找了很久终于找到了!...原创 2022-08-06 23:53:16 · 1192 阅读 · 0 评论 -
C++的标准输入与输出
C++的标准输入与输出概述C++标准库提供了一组丰富的输入/输出功能,可以对系统指定的标准设备进行输入和输出。C++的I/O发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫作输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫作输出操作。1. I/O库头文件2. 标准输出流(cout)预定义的对象cout是iostream类的一个实例。cout对象连接到标准输出设备,通常是显示屏。cout是与流插入运算符<<原创 2021-06-25 19:35:29 · 1646 阅读 · 2 评论 -
C++对数据文件的操作
文件的概述文件是程序设计中一个重要的概念。所谓“文件”,一般是指相关数据的集合。计算机中的一批数据是以文件的形式存放在外部介质(如磁盘、光盘和U盘)上的。操作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部介质上的数据,必须先按文件名找到所指定的文件,然后再从该文件中读取数据。要向外部介质上存储数据也必须先建立一个文件(以文件名标识),才能向它输出数据。文件的分类外部文件和内部文件(1)外部文件:指磁盘文件、光盘文件和U盘文件。目前使用最广泛的是磁盘文件,在程序中对光盘文件和U盘文件的原创 2021-06-25 19:34:45 · 1179 阅读 · 2 评论 -
水题找自信——问题 B: 特殊排序、问题 G: 中位数、PAT Ranking
每日刷题(106)问题 B: 特殊排序题目描述输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。输入输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。接下来的一行有N个整数。输出可能有多组测试数据,对于每组数据,第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。第二行将排序的结果输出。样例输入55 3 2 4 1样例输出51 2 3 4提示如果数组中只有一个数,当第一行将其输出后,第原创 2021-04-16 14:43:36 · 193 阅读 · 0 评论 -
水题找自信——问题 A: 日期差值
每日刷题(100)问题 A: 日期差值题目描述有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。输入有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出每组数据输出一行,即日期差值样例输入2013010120130105样例输出5C++代码:#include<cstdio>int month[13][2] = {{0, 0}, {31, 31}, {28, 29}, {31, 31}, {30,原创 2021-03-19 08:13:25 · 146 阅读 · 0 评论 -
水题找自信——跟奥巴马一起编程、问题 C: 快速排序 qsort [2*]
每日刷题(九十二)跟奥巴马一起编程题目描述美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实原创 2021-02-13 19:05:55 · 187 阅读 · 0 评论 -
水题找自信——问题 B: 找x、问题 I: 锤子剪刀布、问题 H: 部分A+B、问题 A: 排序、PAT Ranking、问题 C: EXCEL排序
每日刷题(九十一)问题 B: 找x题目描述输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。输入测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。输出对于每组输入,请输出结果。样例输入41 2 3 43样例输出2C++代码:#include<iostream>using namespace std;int main(){ int n;原创 2021-02-08 19:51:29 · 509 阅读 · 1 评论 -
C++标准模版库STL——String
标准库类型String标准库类型string表示可变长的字符序列,使用string类型必须首先包含string头文件。作为标准库的一部分,string定义在命名空间std中。String的常见用法详解通过下标访问C++代码:#include<stdio.h>#include<string>using namespace std;int main(){ string str = "abcd"; for(int i = 0; i < str.length()原创 2021-01-16 21:19:02 · 472 阅读 · 0 评论 -
如何通过C/C++求任意角度的余弦值
题目描述圆周率为3.1415926,求45度、90度的余弦值详细C++代码如下:#include<iostream>#include<math.h>#include<conio.h>using namespace std;int main(){ float x = 45.0; float y = 90.0; float PI = 3.1415926; float xh = PI * x / 180.00; float yh = PI * y原创 2021-01-13 12:39:12 · 4459 阅读 · 0 评论 -
C++标准模版库STL容器适配器——queue、priority_queue和stack容器
容器适配器容器适配器是用基本容器实现的一些新容器,这些容器可以用于描述更高级的数据结构。本质上,适配器是使一事物的行为类似于另一类事物的行为的一种机制。容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。容器适配器有三种:stack、queue和priority_queue。stack可以与数据结构中的栈对应,它具有先进后出的特性,而queue则可以理解为队列,它具有先进先出的特性,priority_queue则是带优先级的队列,其元素可以按照某种优先级顺序进行删除。queue的原创 2021-01-09 09:10:43 · 312 阅读 · 0 评论 -
使无数C语言小白困惑不已的(++i) + (++i) + (++i)
如果我说i初始值是2,那么你们觉得(++i) + (++i) + (++i)表达式值为多少呢?思考思考,再看图下的答案答案不唯一,答案取决于所选编译器如果我们选定是Dev C++编译器等,答案就是13,而如果选某些编译器,答案就是15,当然你们可能认为理论上应该是12,即3 + 4 + 5现在说一说答案为13的情况,那就是先扫描第一个运算符+号左右两个,此时i从2变成了4,即4 + 4 = 8,接着就是8 + 5 = 13而答案为15的情况就是全扫描三个(++i),得到i = 5,所以5 +原创 2021-01-07 10:07:24 · 1008 阅读 · 0 评论 -
C++标准模版库STL关联容器之Set容器
关联容器概述关联容器(associative container)并不是C++11才有的概念,之所以叫关联容器是因为容器中的元素是通过关键字来保存和访问的,与之相对的是顺序容器(sequence container),其中的元素是通过它们在容器中的位置来保存和访问的。关联容器主要有映射(map)和集合(set),支持通过键来高效地查找和读取元素。map的元素以键-值对(key-value)的形式组织:键用作元素在map类型下进行索引,而值则表示所存储和读取的数据。set仅包含一个键,并有效地支持关于某个原创 2021-01-06 11:20:18 · 470 阅读 · 0 评论 -
C++标准模版库STL之Vector容器
C++中容器的定义数据存储上,有一种对象类型,它可以持有其他对象或指向其他对象的指针,这种对象类型叫容器。通俗地说容器就是保存其他对象的对象,这种“对象”还包含了一些处理其他对象的方法,这也体现了容器类的一个好处,“容器类是一种对特定代码重用问题的良好的解决方案”。容器另一个好处就是可以自行扩展,解决问题时通常不知道需要存储多少个对象,数组在这方面也是力不从心。容器可以申请内存、释放内存,并且使用最优的算法来执行命令。顺序容器顺序容器是一种各元素之间有顺序关系的线性表,是一种线性结构的可序群集。顺序容原创 2020-11-24 16:08:35 · 388 阅读 · 2 评论 -
静态变量的应用小案例
首先要感谢原作者熊哥,没有他,估计没有我这篇水文经验文章Attention!!!代码要在Visual C++上运行,否则没有afxinet.h等头文件支持,不要在DevC++上写(我就是因为这样才一直运行不出来的【捂脸】)用静态变量输出序列号以下代码展示了唯一序列号的生成过程,其中序列号的样式为:MMDDHHMISS_XXXXXX(即“月日时分秒_流水号”的形式)。/****************************************************版权所有(C)2020,原创 2020-12-20 15:45:11 · 386 阅读 · 1 评论 -
大话C++函数(二)
(1)利用递归实现n!#include<iostream>using namespace std;int f(int n){ if(n == 1 || n == 0) return 1; else return f(n - 1) * n; //不加return只返回1 }int main(){ int n; cin >> n; if(n >= 0) cout << "n! = " << f(n) <<.原创 2020-12-09 11:08:04 · 1011 阅读 · 0 评论 -
大话C++指针、引用和函数(一)
变量的指针和指向变量的指针变量变量的指针就是变量的地址,当变量定义后,其指针(地址)是一常量。可以定义一个变量专门用来存放另一变量的地址,这种变量我们称之为指针变量。在编译时同样分配一定字节的存储单元,未赋初值时,该存储单元内的值是随机的。一个指针变量只能指向同一类型的变量。即整型指针变量只能放整型数据的地址,而不能放其它类型数据的地址。 * 在定义语句中只表示变量的类型是指针,没有任何计算意义。 * 在赋值语句中表示“取值”。&表示“地址”。指针变量的引用指针变量只能存放地址,不原创 2020-12-07 19:44:13 · 749 阅读 · 0 评论 -
大话C++继承与派生
在C++中有二种继承:单一继承和多重继承。当一个派生类仅由一个基类派生时,称为单一继承;而当一个派生类由二个或更多个基类所派生时,称为多重继承公有派生私有派生保护派生多重继承:可以用多个基类来派生一个类原创 2020-11-30 21:10:07 · 215 阅读 · 0 评论 -
大话C++类与对象(三)
友元函数友元函数是一种定义在类外部的普通函数,其特点是能够访问类中私有成员和保护成员,即类的访问权限的限制对其不起作用。友元函数需要在类体内进行说明,在前面加上关键字friend例:友元函数特点:1.友元函数不是成员函数,用法也与普通的函数完全一致,只不过它能访问类中所有的数据。2.友元函数破坏了类的封装性和隐蔽性,使得非成员函数可以访问类的私有成员。3.一个类的友元可以自由地用该类中的所有成员。示例C++代码如下:#include<iostream>using nam原创 2020-12-05 21:36:46 · 1234 阅读 · 0 评论 -
大话C++类与对象(二)
缺省参数的成员函数带默认参数的定义函数中默认参数从右向左填数,而在函数的使用时,参数从左到右传递,如下,默认b = 10,在函数调用a2.Set(20.0);中,20.0对应a的数值,故sum = 30 定义类的指针以及用指针调用对象返回引用类型的成员函数( 把引用作为返回值)通过使用引用来替代指针,会使C++程序更容易阅读和维护。C++函数可以返回一个引用,方式与返回一个指针类似。当函数返回一个引用时,则返回一个指向返回值的隐式指针。这样,函数就可以放在赋值语句的左边。构造函数与析构函数概述原创 2020-12-04 14:02:41 · 313 阅读 · 0 评论 -
大话C++类与对象(一)
在定义一个类时,要注意如下几点:1、类具有封装性,并且类只是定义了一种结构(样板),所以类中的任何成员数据均不能使用关键字extern,auto或register限定其存储类型。2、在定义类时,只是定义了一种导出的数据类型,并不为类分配存储空间,所以,在定义类中的数据成员时,不能对其初始化。如:class Test{int x=5,y=6; //是不允许的extern float x; //是不允许的}在定义类时,只是定义了一种数据类型,即说明程序中可能会出现该类型的数据,并.原创 2020-11-29 14:47:51 · 286 阅读 · 0 评论 -
C++面向对象程序设计第五章课后习题
一、我的样例运行结果如下:二、三、运行结果同上四、修改为公用继承public方式的C++代码如下:如果基类中有public的成员,则公用继承和保护继承不能互相代替。派生类公用继承的情况下,类内类外皆可访问基类public成员派生类保护继承的情况下,类内可以访问public成员,类外不可以用派生类访问基类public成员五、(1)b1.i可,因为i是public且是公有继承,b1.j、b1.k不可,j是保护成员,k是私有成员,类外不可访问(2)都可以(3)i和j可以,k不可以,因为k是基类A原创 2020-12-03 09:28:35 · 2172 阅读 · 0 评论 -
竞码编程-蓝桥杯模拟赛6(大学生组&青少年组)TG画圆以及竞码编程P1052 - 形状输出
每日刷题(八十一)解析:这题很简单,规律也很好找,但是这题有坑,如果没审好题直接做主观臆断每行中的各个数字之间间隔为一个空格那么就打错特错了,这里我们要用到setw()这个控制输出字符长度的函数详细C++代码如下:#include<iostream>#include<iomanip>using namespace std;int main(){ int n; cin >> n; int a[2 * n - 1][2 * n - 1] = {0原创 2020-11-03 20:31:27 · 287 阅读 · 0 评论 -
源码研究之高效解决如何查看万能头文件bits/stdc++.h源码的问题(DevC++版)
其实有朋友学到一定程度就想研究源码,这是不错的,下面我来简要讲一下如何找到bit/stdc++.h源码一般源码都在安装路径下的Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\x86_64-w64-mingw32\32\bits下接着我们就可以用记事本或者notepad++打开了// C++ includes used for precompiling -*- C++ -*-// Copyright (C) 2003-2原创 2020-10-26 14:40:56 · 2202 阅读 · 0 评论 -
算法十一——散列表hash(牺牲空间换时间,提高查找速度)附数字查找hash题、变变式题——字符串出现次数
在平均情况下,散列表执行各种操作的时间都为O(1)。O(1)被称为常量时间。你以前没有见过常量时间,它并不意味着马上,而是说不管散列表多大,所需的时间都相同这意味着无论散列表包含一个元素还是10亿个元素,从其中获取数据所需的时间都相同。实际上,你以前见过常量时间——从数组中获取一个元素所需的时间就是固定的:不管数组多大,从中获取一个元素所需的时间都是相同的。在平均情况下,散列表的速度确实很快。例一、对应的C++代码如下:#include<iostream>#include<原创 2020-10-26 11:15:52 · 679 阅读 · 0 评论 -
成功解决C++编译器报错[Error]in C++98 ‘arr‘ must be initialized by constructor, not by‘{...}‘
出现这种问题的主要原因是编译器未支持新出的C++11,对应的处理办法也很简单这里我用DevC++做示范,其他的软件设置也都差不多打开编译器选项输入-std=c++11编译成功,问题解决了之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!...原创 2020-10-24 18:05:28 · 19201 阅读 · 16 评论 -
C++面向对象程序设计第三章部分课后习题
三、我修改的程序如下:#include<iostream>using namespace std;class Date{ public: Date(int = 1, int = 1, int = 2005); void display(); private: int month; int day; int year;};Date::Date(int m, int d, int y):month(m), day(d), year(y){}void原创 2020-10-23 20:20:45 · 3341 阅读 · 0 评论 -
C++面向对象程序设计第二章部分课后习题以及关于error: new types may not be defined in a return type的解决
一、我的修改方式如下:#include<iostream>using namespace std;class Time{ public: void set_time(void); void show_time(void); private: int hour; int minute; int sec;};Time t;int main(){ t.set_time(); t.show_time(); return 0;}void Time::set_原创 2020-10-05 10:23:23 · 698 阅读 · 0 评论 -
C++中内置成员函数inline的优势(占空间省时间)但是对于小规模程序没有显著提速优势
样例代码(最好放在Linux的g++编译环境运行):#include<iostream> #include<time.h>using namespace std;int calc1(int a, int b){ return a + b;}inline int calc2(int a, int b){ return a + b;}int main(){ int x[1000], y[1000], z[1000]; for(int i = 0;原创 2020-10-03 10:42:04 · 457 阅读 · 0 评论 -
C++面向对象程序设计第一章部分课后习题
七、由于一个函数不能既作为重载函数又作为默认参数的函数,所以我这里设置的两个函数名不同,分别为max和max2详细C++代码如下:#include<iostream>using namespace std;int max(int a, int b, int c){ return a > b ? a : (b > c ? b : c);}int max2(int a, int b){ return a > b ? a : b;}int main()原创 2020-09-29 09:58:58 · 681 阅读 · 0 评论 -
给初学者的一份C++通识
1、源代码文件、目标文件的作用是什么? 2、main()函数的功能 3、链接程序(链接器)的功能是什么? 4、试说明编译程序与解释程序的不同之处。 5、执行文件放置在哪一个目录中?系统会在当前项目下的“Debug”目录下产生可执行的文件。 6、什么是集成开发环境?文章持续更新中,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!...原创 2020-09-04 19:46:33 · 189 阅读 · 0 评论