自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (1)
  • 收藏
  • 关注

原创 Ubuntu20.4下x264、x265、fdk-aac和FFmpeg4.3源码编译安装

Ubuntu20.4下x264、x265、fdk-aac和FFmpeg4.3源码编译安装

2023-05-25 17:09:51 2177 6

原创 ubuntu18.04下libevent安装与配置

Ubuntu18.04下libevent安装与配置

2023-05-08 15:18:44 835

原创 C语言显示代码行号、所在函数名和所在文件名

C语言显示代码行号、所在函数名和所在文件名

2023-05-05 10:56:35 409

原创 Ubuntu18.04环境下CMake配置大华SDK

大华SDK的cmake配置

2023-05-04 17:33:30 881 1

原创 数组反转的C++实现

倒序输出数组的三种C++实现

2022-02-12 16:46:16 2330

原创 C++中的this指针

目录this关键字this关键字this指针就是预先定义好的指向对象的指针。this指针变量记录每个对象的内存地址,然后通过间接访问运算符->访问该对象的成员。#include <iostream>using namespace std;class May{ char day_;public: char get()const { return day_; } void set(char x) { this->day_ = x; cout <<

2021-09-19 13:01:25 133 1

原创 C++中的析构函数

目录析构函数变量的生存期参考析构函数析构函数与构造函数功能相反,构造函数在对象被创建后调用,用于对对象的初始化,而析构函数在对象被销毁时调用,用于对对象内成员所占用的空间进行回收。析构函数名称与类名相同,前方有一个“~”,没有返回值,没有参数(这一点与构造函数不同)。一个类只有一个析构函数。如果定义类时没有编写析构函数,编译器会生成默认析构函数。如果程序员定义了一个析构函数,编译器不会再生成析构函数。为了确保对象所占用的空间被回收,析构函数在对象声明期结束时会被自动调用(析构函数调用时机的原因:无

2021-09-18 14:29:07 808

原创 C++中的复制构造函数

目录普通变量的复制复制构造函数复制构造函数的三种调用普通变量的复制有时我们会在定义一个变量的同时使用另一个变量来初始化它。int a_variable=12;int new_variable(a_variable);通过已有的同类型变量来初始化自身很有用。对自定义类型的对象是否可以通过一个存在的对象方便的复制呢?复制构造函数复制构造函数又叫做拷贝构造函数,它只有一个参数(既然需要复制,一个就够了,若传入两个相同对象则没有意义,若传入两个不同的对象,就没必要叫做复制构造函数了),参数类型为本

2021-09-17 21:49:47 2239

原创 在任意路径启动Nginx方法

每次进入nginx安装目录启动nginx会比较麻烦。将nginx添加到系统环境变量中就可以直接启动nginx了。创建软连接ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx格式为:ln + -s + 源文件路径 +目标文件路径目的是通过软连接将nginx程序连接到/use/local/sbin目录中之后就可以在任意目录下开启nginx了。启动nginx服务nginx 停止nginx服务nginx -s quit重新载入

2021-09-15 12:51:04 1615

原创 Ubuntu安装好Nginx后防火墙的配置

安装好nginx之后,需要配置防火墙,开启80端口。使外网通过访问80端口来访问配置网站。文章目录防火墙命令配置防火墙启动nginx服务查看nginx进程信息验证80端口防火墙命令查看防火墙状态service iptables status启动防火墙service iptables start关闭防火墙service iptables stop重启防火墙service iptables restart配置防火墙修改防火墙配置sudo ufw enablesudo ufw

2021-09-15 11:37:14 956 1

原创 Ubuntu20.04上Nginx各个版本的安装

这里写自定义目录标题安装条件下载与解压配置编译安装验证是否成功安装条件编译工具:gcc、g++库:zlib、pcre、OpenSSL以上为安装nginx的必要条件,应先安装好。下载与解压进入/usr/local路径下cd /usr/local/下载指定的nginx文件(nginx文件在官网这一目录下,其他版本修改nginx-后面的版本号即可)wget http://nginx.org/download/nginx-1.12.2.tar.gz解压nginx文件tar -zxvf

2021-09-15 10:41:23 1575

原创 C++中的构造函数

当我们在定义一个变量不给它指定一个初始值时,这个对象会被赋一个初始值。如图:构造函数属于成员函数比较特殊的一种(与其他成员函数不同,它不能被显式的调用,所以也没有必要为它设置返回值),它在对象的初始化时起作用(设计类时往往将初始化功能在构造函数中实现),当在局部空间或全局区创建自定义类型的对象时,构造函数会被自动调用(设计好初始化后,每当创建对象就会自动调用构造函数会使每一个对象都处于良好的随时可用的状态)。如图:初始化方法为给出形参列表如上图,在这里对类内成员赋初值(此时构造函数的函数体还未开始

2021-09-13 15:44:48 923

原创 PAT(乙级)题解1076C++实现

Wifi密码下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设每道选择题都有 4 个选项,有且只有 1 个正确答案。输入格式:输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行按照 编

2021-09-10 21:48:12 119

原创 PAT(乙级)题解1088C++实现

三人行子曰:“三人行,必有我师焉。择其善者而从之,其不善者而改之。”本题给定甲、乙、丙三个人的能力值关系为:甲的能力值确定是 2 位正整数;把甲的能力值的 2 个数字调换位置就是乙的能力值;甲乙两人能力差是丙的能力值的 X 倍;乙的能力值是丙的 Y 倍。请你指出谁比你强应“从之”,谁比你弱应“改之”。输入格式:输入在一行中给出三个数,依次为:M(你自己的能力值)、X 和 Y。三个数字均为不超过 1000 的正整数。输出格式:在一行中首先输出甲的能力值,随后依次输出甲、乙、丙三人与你的关系:如果其

2021-09-10 13:39:30 93

原创 PAT(乙级)题解1087C++实现

有多少不同的值输入格式:输入给出一个正整数 N(2≤N≤104)。输出格式:在一行中输出题面中算式取到的不同值的个数。输入样例:2017输出样例:1480思路:利用set的去重复功能和它自带的计数功能即可。实现:#include <iostream>#include <set>using namespace std;void test(){ int a; cin>>a; set<int>s;

2021-09-10 12:38:26 108

原创 PAT(乙级)题解1086C++实现

就不告诉你做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。输入格式:输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。输出格式:在一行中倒着输出 A 和 B 的乘积。输入样例:5 7输出样例:53思路:利用STL的队列从结果的末位向高位取数输入队列中,先进先出即可。实现:#include <iostream>#include <

2021-09-10 09:03:12 123

原创 PAT(乙级)题解1013C++实现

数素数输入格式:输入在一行中给出 M 和 N,其间以空格分隔。输出格式:输出从 P m到 P n的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 101 103思路:提前用素数判断函数对前10 4个素数算出来,在根据区间输出即可。实现:#include <iostream>#inclu

2021-09-09 11:11:58 141

原创 PAT(乙级)题解1018C++实现

锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第 1 行给出正整数 N(≤10 5),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。输出格式:输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1

2021-09-08 20:00:34 78

原创 PAT(乙级)题解1012 C++实现

数字分类输入格式:每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。输出格式:对给定的 N 个正整数,按题目要求计算 A 1 ~A 5 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。若其中某一类数字不存在,则在相应位置输出 N。输入样例:13 1 2 3 4 5 6 7 8 9 10 20 16 18输出样例:30 11 2 9.7 9思路:依次对每个数字进行判断

2021-09-08 18:50:45 130

原创 PAT(乙级)题解1026C++实现

程序运行时间要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先调用 clock(),获得一个时钟打点数 C1;在 f 执行完成后再调用 clock(),获得另一个时钟打点数 C2;两次获得的时钟打点数

2021-09-08 16:11:58 110

原创 PAT(乙级)题解1046 C++实现

划拳划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数 N(≤100),随后 N 行,每行给出一轮划拳的记录,格式为:甲喊 甲划 乙喊 乙划其中喊是喊出的数字,划是划出的数字,均为不超过 100 的正整数(两只手一

2021-09-07 21:44:59 76

原创 PAT(乙级)题解1043C++实现

输出PATest给定一个长度不超过 104的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest… 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过 104的、仅由英文字母构成的非空字符串。输出格式:在一行中按题目要求输出排序后的字符串。题目保证输出非空。输入样例:redlesPayBestPATTopTeePHPere

2021-09-07 20:59:18 103

原创 PAT(乙级)题解1042C++实现

字符统计请编写程序,找出一段给定文字中出现最频繁的那个英文字母。输入格式:输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。输出格式:在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。输入样例:This is a simple TEST. There ARE numbers and other

2021-09-07 18:58:50 134

原创 PAT(乙级)题解1036C++实现

跟奥巴马一起编程美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式:输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50%(四舍五入取整)

2021-09-05 13:21:10 77

原创 PAT(乙级)题解1016C++实现

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-09-04 22:07:43 102

原创 PAT(乙级)题解1011C++实现

输入格式:输出格式:输入样例:输出样例:思路:实现:

2021-09-03 15:28:39 104

原创 PAT(乙级)题解1009C++实现

说反话给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Come I Here World Hello思路:利用二维数组的倒序输出即可。

2021-09-02 15:43:21 110

原创 PAT(乙级)题解1008C++实现

数组元素循环右移问题输入格式:每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。输出格式:在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。输入样例:6 21 2 3 4 5 6输出样例:5 6 1 2 3 4思路:因为不可以创建新的数组,可以利用a=a+b;b=a-b;a=a-b;的方法进行交换。注意移动的次数可能大于数组的长度,需要进行取余计算。实现:#include <iostr

2021-09-02 12:24:24 135

原创 PAT(乙级)题解1007C++实现

输入格式:输出格式:输入样例:输出样例:思路:实现:

2021-09-02 10:23:57 118

原创 PAT(乙级)题解1006C++实现

换个格式输出整数让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出 n。输入样例:234输出样例:BBSSS1234思路:关键在于找到整个字符串大

2021-09-01 15:23:48 105

原创 PAT(乙级)题解1005C++实现

继续(3n+1)猜想卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。我们称一个数列中的某个数 n 为“关键数”,如果 n 不能被

2021-09-01 11:00:51 123

原创 PAT(乙级)题解1004C++实现

成绩排名读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号 成绩第 3 行:第 2 个学生的姓名 学号 成绩 ... ... ...第 n+1 行:第 n 个学生的姓名 学号 成绩其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。输出格式:对每

2021-08-30 23:18:33 133

原创 PAT(乙级)题解1003C++实现

我要通过!“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母

2021-08-30 22:31:40 65

原创 PAT(乙级)题解1002C++实现

写出这个数读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10 100。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu思路:利用字符串接收数据,再依次提取相加,最后利用deque接收字符类型,然后输出(最后要将第一个

2021-08-30 15:16:04 172

原创 PAT(乙级)题解1001C++实现

害死人不偿命的(3n+1)猜想卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超

2021-08-30 14:14:44 92

原创 快速排序算法的C++实现

目录算法描述算法执行过程算法实现算法执行结果算法性能分析参考算法描述快速排序又叫分区排序,它是一种平均性能非常好的排序方法。快速排序使用分治思想。这个算法优于归并算法,因为它在原位上排序,不需要辅助的存储空间。对一个数组A[p…r]进行排序一般有三个步骤。分解:数组A[p…r]被划分为两个子数组A[p…q-1]和A[q+1…r],是的A[p…q-1]中的每一个元素都小于等于A[q],而A[q]也小于等于A[q+1…r]中的每个元素。同时计算下标q。递归:通过递归调用快速排序,对子数组A[p…q-1]

2021-08-25 17:05:29 2224

原创 希尔排序算法的C++实现

目录算法描述算法执行过程C++代码执行过程算法性能分析参考算法描述希尔排序是基于插入排序的思想,又被称为缩小增量排序。把数组按一定增量d分组,对每组记录采用直接插入排序方法进行排序,随着增量逐渐减小,所分成的组包含的记录越来越多,到增量的值减小到1时,整个数据合成一组有序的序列。算法执行过程1.将有n个元素的数组分成n/2个数字序列,第1个数据和第n/2+1个数据为一组,第2个数据和第n/2+2个数据为一组…2.一次循环使每一组序列排好顺序。3.将n个元素的数组分为n/4个数字序列,再次排序。

2021-08-24 18:28:02 258

原创 选择排序算法的C++实现

目录算法描述算法执行过程C++代码执行过程算法性能分析参考算法描述选择排序算法通过选择和交换来实现排序,每步从待排序记录中选出关键字最小的记录,顺序放到已经有序的序列的最后,直到全部排完为止。算法执行过程首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换,接着从剩下的n-1个数据中选择次小的1个元素,将其和第2个位置的数据交换。接着不断重复,直到最后两个数据完成交换。最后,原始数组变为从小到大的序列。C++代码#include <iostream>using nam

2021-08-24 15:22:35 310

原创 C++当中的注释

注释的写法C++ 支持单行注释和多行注释。注释中的所有字符会被 C++ 编译器忽略。单行注释://这里填写注释内容多行注释:/* 这里填写注释内容 ......*/注意事项注释应尽量使代码更易读,如a=b;//将b赋值给a这行代码本身明显比注释更加明了 ,添加的注释反而转移人的注意力,增加了阅读量,写这种注释是吃力不讨好的举动。而且这种注释和语句关联性更大,代码一旦更改,注释也要随之更新,我们往往这时会忘记这一步。c=b;//将b赋值给a这时,代码阅读者将会困惑到底是代码

2021-08-20 10:20:23 261

原创 C++中的常量成员函数

回顾一下this指针,在类X的非常量成员函数中,this指针的类型为X * const。这里的this指针是指向非常量X的常量指针。由于this指向的对象不是常量,因此它可以被修改。而在类X的常量成员函数中,this的类型为const X * const。这是一个指向常量X的常量指针。因为指向的是常量,所以不能被修改,这是常量成员函数和非常量成员函数之间的区别。class X{ public: X();buffer_(0),isComputed_(false){} void setBuffer

2021-08-10 17:39:09 293

数据结构题集严蔚敏课后答案

课后答案 描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别

2018-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除