c++
文章平均质量分 76
隰有游龙
这个作者很懒,什么都没留下…
展开
-
intel advisor安装与使用
没有搜到相关教程,所以自己写一篇,如有不足请指正。原创 2023-08-02 14:57:21 · 751 阅读 · 1 评论 -
C++11学习笔记(4)——通用工具(下)
/ 按照绝对值大小进行比较 return std :: abs(a) < std :: abs(b);return 0;在上述示例中,我们定义了一个比较函数 cmp,它按照元素的绝对值大小进行比较。然后,我们使用 std::sort 函数对 nums 容器进行排序,传入 cmp 函数作为比较函数。排序结果会按照元素的绝对值从小到大进行排序,输出结果为:-1, 2, -3, 4, -5。通过自定义比较函数,我们可以根据特定的条件对元素进行排序或比较。原创 2023-06-16 12:29:11 · 2990 阅读 · 0 评论 -
C++11学习笔记(3)——通用工具(上)(包含重要特性智能指针Smart pointer)
C++11标准库中的pair,tuple,以及非常重要的智能指针shared_ptr,weak_ptr,unique_ptr,auto_ptr原创 2023-06-15 11:07:22 · 767 阅读 · 0 评论 -
linux下配置并运行DPC++(含无图形界面安装方法)
你可能注意到如上编译会出现一个warning,提示你当前使用的dpcpp命令选项已被废弃,并且在将来的发布版本中将被移除。接受,中间会有个安装eclipse,可以跳过,一路next。一个官方例子(注意不要在刚刚的安装路径新建测试文件)此时当前文件夹应该有这个文件了,加一下权限,运行。等加载完,显示安装目录。进入安装路径,配置一下。原创 2023-06-13 15:39:17 · 462 阅读 · 0 评论 -
C++11学习笔记(2)——标准库的基本概念
在这个例子中,自定义异常类MyException重写了基类std::exception中的what()函数,以提供异常的描述信息。在C++中,std::logic_error是表示逻辑错误的异常类的基类,它提供了派生类来表示不同类型的逻辑错误。需要注意的是,std::exception_ptr只能捕获和重新抛出标准异常类型或自定义异常类型,而不能捕获非异常的错误或整型值等。在C++中,std::runtime_error是表示运行时错误的异常类的基类,它提供了派生类来表示不同类型的运行时错误。原创 2023-06-13 11:11:15 · 793 阅读 · 0 评论 -
排序算法——简单选择排序
简介英文名:Select Sort是选择排序中最简单的算法步骤以下用数组2,5,8,3,6,9,1,4,7为例从小到大排序1.在未排序部分找到最小的那个数一开始当作全部乱序,从乱序第一个开始找找到最小数12.看找到的最小数的位置,如果不是未排序部分的第一个,就将它和第一个交换现在1不是第一个,所以我们把它和2交换位置3.重复前两步直到所有数排序完毕1已经排好,所以接下来从第二个数开始是乱序部分,从第二个数开始重复前两步找到最小数2和前面数交原创 2021-05-07 17:05:56 · 926 阅读 · 0 评论 -
排序算法——希尔排序
简介英文名:Shell’s Sort是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。该方法因 D.L.Shell 于 1959 年提出而得名步骤以下用数组2,5,8,3,6,9,1,4,7,0为例从小到大排序1.先取一个小于n的整数d1作为第一个增量,把数据分组一般来说取n/2作为d1,所以当前是5现在相同颜色的就是一组2.每组进行直接插入排序首先2和9位置不变然后5和1,需要改变原创 2021-04-28 16:28:14 · 979 阅读 · 1 评论 -
排序算法——折半插入排序(进阶!)
简介首先要了解直接插入排序还有二分查找英文名:binary insertion sort在直接插入排序算法上进行改进的算法步骤以下用数组2,5,8,3,6,9,1,4,7为例从小到大排序1.先看第一个数,将数组划分为有序和无序部分首先看第一个数2,一个数必然有序,所以将2划分有序,后面都是无序2.找到插入位置取出无序部分的首个,在有序部分二分查找到位置2,5,8不用移动,所以直接从3的插入开始还是先拿出要插入的数然后用二分查找找到应该插入的位置原创 2021-04-15 20:33:41 · 1580 阅读 · 3 评论 -
C++算法——折半查找
简介英文名:Binary Search也称二分查找,它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列步骤以下用数组1,2,3,4,5,6,7,8,9为例此时我们查找31.首先我们的查找范围是全部,取两头下标的平均值首先两头下标是0和n-1此时得到中间值52.将两个数进行比较,然后缩小查找范围经过比较,得到的中间值大于要查找的数,所以我们要找的数应该位于中间值的左侧,所以范围改为原本的左侧到中间值前一个数3.重复第1,原创 2021-04-15 18:03:14 · 8775 阅读 · 3 评论 -
排序算法——直接插入排序(图文超详细!)
简介英文名:Straight Insertion Sort也是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表步骤以下用数组2,5,8,3,6,9,1,4,7为例从小到大排序1.先看第一个数,将数组划分为有序和无序部分首先看第一个数2,一个数必然有序,所以将2划分有序,后面都是无序2.无序部分的首个插入到有序部分取出无序部分的首个,在有序部分从后向前比较,插入到合适的位置3.重复第2步直到无序部分全部插入有序原创 2021-04-14 21:30:16 · 146121 阅读 · 19 评论 -
C++11学习笔记(1)——C++11新特性
前言我使用的书籍是 C++标准库(第二版)前两章是一些简单介绍,就此略过从第三章开始分享我的学习所得,欢迎讨论和指出不足之处前提需要有一定的c++基础知识,基础部分概不介绍如果你的编译器版本过低,那么在运行C++11时会出现bug,这里给出codeblock更新办法https://blog.csdn.net/autocyz/article/details/42368147STL基本知...原创 2019-07-12 11:28:43 · 256 阅读 · 0 评论 -
排序算法——冒泡排序(写给初学者)
简介英文名:Bubble Sort是一种简单的排序算法由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。步骤以下用数组2,5,8,3,6,9,1,4,7为例从小到大排序1.遍历数组,找到不符合规律的一对首先是2和5,符合,过然后5和8,也没有问题- 接着8和3就不符合了,所以开始进行处理2.将不符合规律的一对交换3.重复1,2步直到遍历完接下来8和6交换然后8和9原创 2021-04-04 18:40:45 · 1616 阅读 · 3 评论 -
FCFS,HRRN,SPF,SRT,四种调度算法简单实现(C++版)
1.数据输入数据由三部分组成:2.结构体四种算法的数据组成是一样的,所以使用相同的结构体(全局变量在最后完整代码中)struct P{ string name; //名称 int arrive,longg,start,endd,cyc;//到达时间,服务时间,开始时间,结束时间,周转时间 double qcyc;//平均周转时间 int id;//数据顺序}p[10000];因为在调度中顺序会改变,所以要保留输入时的数据顺序,这样才能按原本顺序输出3.FCF原创 2020-12-02 16:38:13 · 3085 阅读 · 1 评论 -
codeblock makefile问题解决(多文件怎么链接)
#1.codeblock 怎么把多个文件连在一起首先创建一个工程然后导入你的文件(工程名上单击右键,add files)写一个.h文件,把函数名和库放进去,比如下面:#2.codeblock 使用自己的makefile还以上面为例,建一个makefile文件:add: add.h main.cpp add.cpp g++ main.cpp add.cpp -o addclean: rm -f add然后项目上右键,properties再项目右键,选build options删成我原创 2020-12-02 14:28:27 · 1272 阅读 · 0 评论 -
计蒜客T1375 百钱买百鸡(四)
题目百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100 文钱买 100 只鸡,公鸡、母鸡、小鸡各买多少只?本程序要求解的问题是:给定一个正整数 n,用 n 文钱买 n只鸡,问公鸡、母鸡、小鸡各买多少只?输入格式输入一个正整数 n。输出格式如果有解,输出有多少种解(可以用正整数表示的解)。如果无解,输出"No Answer."。数据范围1≤n≤1018输出时每行末尾的多余空格,不影响答案正确性样例输入100样例输出4思路1.根据要求n钱买n鸡,所以当买1原创 2020-09-02 15:32:51 · 822 阅读 · 0 评论 -
计蒜客-T1581
题目这里我们定义 φ(n)表示所有小于等于 n 与 n 互质数的个数。例如 φ(10)=4,因为我们可以在 1∼10 中找到 1,3,7,9与 10 互质。输入格式第一行输入一个整数 t,表示测试数据组数。接下来 t 行,每行有一个整数 n。输出格式对于每组测试数据输出 φ(n)。数据范围1≤t≤106, 1≤n≤106。输出时每行末尾的多余空格,不影响答案正确性样例输入3210100样例输出1440思路1.欧拉函数的模板题,由于多组数据,所以要用到筛法快速求,这里原创 2020-07-30 10:55:03 · 183 阅读 · 0 评论 -
计蒜客 - T3144
题目有 n 个不同的气球和 m 个不同的重物,每个气球都可以提供 1N 的升力(竖直向上),每个重物都会受到 1N的重力(竖直向下)。现要选出若干个气球和若干个重物,将他们固定在一起,并且使得固定之后的整体受力平衡,请问共有多少种满足条件的方案?输入格式输入数据第一行一个正整数 T,表示测试数据组数接下来 T行,每行包含两个空格隔开的正整数 n 和 m输出格式输出 T行,每行包括一个数字,表示答案除以 109+7的余数数据范围对于 20%的数据,m=1对于 60%的数据,1原创 2020-07-28 01:13:51 · 340 阅读 · 0 评论 -
计蒜客 - T3126
题目阿克克希是求婚总动员的队长,他通过自己的双手,成就了无数年轻人的梦,但他却留下了悲伤的泪水。求婚是非常费力的,他手上有 P−1个求婚请求,这 i 个人的编号为 [1,P−1]面对第 i个人他的求婚麻烦值为:i 在模 P意义下的逆元。他现在想知道总的麻烦值。tips:如果有任意一个编号 i 在模 P 意义下不存在逆元,请输出 AKCniubi输入格式一行一个数 P表示求婚请求总数输出格式一行一个数表示总麻烦值若有数存在无逆元的情况,输出 AKCniubi数据范围对于 30%的数原创 2020-07-28 00:52:35 · 405 阅读 · 0 评论 -
素数筛与欧拉函数入门
前言我们在做题时会碰到素数,对于单个数据或者小范围数据,直接对每一个判断是不是素数,但如果碰到大范围数据或者重复使用数据,这样做往往会超时,就需要快速挑选出素数并保存,这就是素数筛,利用它们可以求欧拉函数素数筛暴力筛,时间复杂度O(nnn\sqrt{n}nn)遍历判断保存完事bool isprime(int n) //暴力解法,时间复杂度为O(n*n){ for(int i=2; i<=sqrt(n); i++) if(n%i==0) r原创 2020-07-22 18:27:19 · 473 阅读 · 1 评论 -
乘法逆元入门(四种方法及补充)
原因在一些题目中,因为数据量会特别大甚至超过ll,所以会要求最后结果mod一个数,实际上就是让你在计算过程中就要不断mod对于加法:(a+b)%m = (a%m+b%m)%m对于减法:(a-b)%m = (a%m-b%m)%m对于乘法:(a*b)%m = (a%m*b%m)%m但是这个规则在除法不适用:简单例子比如(30/6)%2为了对除法也能进行模运算,就需要乘法逆元什么是乘法逆元若c是b的逆元,则有b*c≡1(mod m),称c为b关于m的乘法逆元例如b=10,m=3时c=4令a=原创 2020-07-12 23:01:36 · 1161 阅读 · 1 评论 -
Codeforces Round #638 (Div. 2)A-D
AA. Phoenix and Balancetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputPhoenix has ncoins with weights 21,22,…,2n. He knows that nis e...原创 2020-05-02 16:34:38 · 328 阅读 · 0 评论 -
学习通、优课联盟不让粘贴?那就让计算机帮你手打!
前言这学期英语课用了优课联盟,第一次发现竟然还有不让粘贴的作文???但是身为一个半吊子程序员,能偷懒绝不自己动手,这种事情当然直接让计算机来就好了(ノ◕ω◕)ノ前提最主要的两个模块就是文件读取和模拟键盘,这样就可以将一个文件打出来了。1.文件读取首先是弹出文件选择对话框,使用BROWSEINFO这个解释多一些然后就是读取文件,使用ifstream,这个就不放链接了,一搜很多解释的2...原创 2020-04-09 13:22:52 · 2818 阅读 · 3 评论 -
CodeCraft-20 (Div. 2)C. Primitive Primes详解
题目It is Professor R’s last class of his teaching career. Every time Professor R taught a class, he gave a special problem for the students to solve. You being his favourite student, put your heart in...原创 2020-03-05 10:58:04 · 233 阅读 · 0 评论 -
C++算法——DFS(图解)
前言刚接触BFS和DFS的你是不是搞不明白两个的区别?(其实学完了也没明白 щ(゚Д゚щ) ),但是人类通过图片能得到远高于文字的记忆力和理解力,走迷宫也是从小就玩过的游戏,那么今天我就通过简单的迷宫来让你明白这两个算法。迷宫我自己瞎编一个,0是路,2是入口,3是出口0 0 1 0 12 1 0 0 30 0 0 1 00 1 0 1 00 1 0 0 0也就是如果是人来玩的...原创 2020-01-08 18:29:02 · 6784 阅读 · 3 评论 -
一个简单的C++恶搞小程序——鼠标静止
前言想恶搞一下你的朋友?贴纸条什么的太没意思了。想给他下个病毒?病毒千千万,一不小心你就玩完了。不如自己来改一个简单的小病毒,让友谊和快乐并存ლ(・∀・ )ლ(还有学习?)。说不定你还能得到一个鼠标。正文开始其实很简单就是调用STL库的函数对鼠标进行操作#include <iostream>#include <windows.h>#include <cst...原创 2020-01-04 20:37:25 · 3822 阅读 · 10 评论 -
C++算法——BFS(图解)
简介宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。相信初次接触的人已经蒙圈了,那么我们先不要探究其代码,直接从这个算法的过程来观察它怎样运算BFS常用于迷宫,即从一点到另一点...原创 2019-09-02 16:45:46 · 31913 阅读 · 24 评论 -
c++控制台小程序——2048(新手简易版)
先上效果图大致思路1.打印地图老办法gotoxy函数2.生成随机位置新数字我在这部分加入了算法生成,因为随机生成通过时间改变来实现,因此如果当前位置有数字,时间改变坐标才变,若多次位置均有数字,界面就会停滞一段时间,算法使得很快就生成新的坐标3.最麻烦的数字移动首先使用键盘监听确定方向然后我使用了3个大循环(1)移动,覆盖空格(2)向当前方向合并一次(只有一次!!...原创 2019-04-12 11:41:10 · 1151 阅读 · 0 评论 -
c++控制台小程序——贪吃蛇(新手简易版)
先上一下效果图欢迎界面游戏界面结束界面大致思路1.游戏分为四个部分:场景,蛇,食物和交互2.打印整个地图以及提示(完成场景)3.食物需要的函数:打印食物,改变食物坐标4.蛇需要的函数:初始位置,移动,改变方向(键盘监听)5.交互函数:蛇吃食物(加长,改变食物坐标),游戏结束(蛇撞墙,碰到自己)移动通过删除尾巴,改变头坐标实现。加长则不删除尾巴。完整代码(有详细注释)...原创 2019-04-11 16:57:01 · 3647 阅读 · 3 评论