自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 高精度算法

高精度算法一、高精度加法C=A+B二、高精度减法C=A-B三、高精度乘法C=A*b四、高精度除法C=A/b一、高精度加法C=A+B题目描述:用字符串存储两个大数A和B,求他们的和并输出(A和B都为正)具体步骤:把字符串倒序存储到容器中容器中A和B从低为到高位逐个相加存入容器C,注意进位,循环最后判断是否还有进位倒序输出C题解源码:#include<iostream>#include<vector>using namespace std;vector

2022-01-14 19:44:26 728

原创 二分查找算法(整数和浮点数)

二分查找算法一、整数二分模板二、浮点数的二分一、整数二分模板二分核心思想: 选择区间,每次都保证答案在被选择的区间内,循环往复。整数二分有两种情况 :第一种是区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用:bool check(int x) {/* ... */ } // 检查x是否满足某种性质int bsearch_1(int l, int r){ while (l < r) { int mid = l + r >&g

2022-01-14 09:43:52 510

原创 快排和归并排序算法的模板及运用

快排和归并排序算法的模板及运用一、快速排序二、快速选择三、归并排序四、逆序对的数量一、快速排序核心思想: 把一个序列分为两部分,左半部分所有数均小于等于或大于等于右半部分所有数,递归处理左右两部分具体步骤: 其中q为一个数组,l为数组的左端点下标,r为数组的右端点下标确定分界点q[(l+r)>>1],也就是q[(l+r)/2]利用双指针交换调整左右区间,使左区间内数据均小于等于右区间内数据(升序排序),或者使左区间内数据均大于等于右区间内数据(降序排序)递归处理左右区间[l,j]

2022-01-14 07:56:45 395

原创 STL中二分查找与去重算法

二分查找与去重算法一、二分查找算法二、去重算法一、二分查找算法lower_bound和upper_bound用法:lower_bound(beg,end,key);返回指向第一个大于等于key值的位置的迭代器或指针,否则返回endupper_bound(beg,end,key);返回指向第一个大于key值的位置的迭代器或指针,否则返回endbeg为容器的起始迭代器或者为数组的首地址end为容器的结束迭代器或者为数组最后一个元素的下一个位置的地址key要查找的数据注意:查找的数组

2022-01-13 15:31:52 401

原创 位运算对字母大小写的转换

位运算对字母大小写的转换先定义一个字符 char c; 以下讨论默认 c 为字母我们知道小写字母的ASCII值比其大写字母的大32,因此我们通常采取下面两种方式转换字母大小写c = c + 32; 把大写字母转换为小写c = c - 32; 把小写字母转换为大写我们要把 c 转换为大写字母,如果一开始我们不知道 c 为大写还是小写,要对其转换的话,我们通常需要一个 if 语句判断一下 c 的大小写 如:if(c>='a'&&c<='z') 或者if(islower(

2022-01-12 10:57:27 2587 4

原创 【万字总结篇】C++STL常用算法详解(错等年系列)

目录STL常用算法常用遍历算法for_eachtransform常用查找算法findfind_ifadjacent_findbinary_findcountcount_ifSTL常用算法C++STL中的内置算法主要在头文件<algorithm>、<functional>、<numeric>中<algorithm>是所有STL头文件中最大的一个,也是包含算法最多,最常用的一个头文件,其中包含比较、交换、查找、遍历、复制、修改等算法<numeric

2021-11-29 18:27:22 7982 66

原创 C++STL函数对象详解

函数对象概念及使用计算机语言中的谓词内建函数对象算术仿函数关系仿函数逻辑仿函数概念及使用函数对象的概念:重载函数调用操作符()的类,其对象常称为函数对象函数对象使用重载的()时,行为类似函数调用,因此也叫仿函数本质:函数对象(仿函数)是一个类,而不是一个函数使用:函数对象可以像普通函数那样调用,可以有参数和返回值函数对象超出普通函数之处是,函数对象可以有自己的状态(就是对象的成员变量)函数对象可以作为参数传递下面我们从一个简单的例子里,了解函数对象的具体使用#include&l

2021-11-26 11:56:34 1842 11

原创 《结构体在内存中的对齐规则》多图易理解

结构体在内存中的对齐规则引子结构体的存储规则总览对规则1和规则2的运用对规则3的应用引子在了解结构体对齐规则之前,我们先来看一个例子例1:#include<iostream>using namespace std;struct Sut1{ char c; short st; int num;}Sut1;int main(){ cout << "sizeof(char) = " << sizeof(char) << endl; co

2021-11-20 21:36:55 1576 45

原创 C++ STL string容器超详解(已优化)

string容器1.string的基本概念2.string的构造函数3.string的赋值操作3.string字符串的拼接4.string查找与替换5.string的比较6.string的存取7.string的插入和删除8.string的子串1.string的基本概念概念:string是c++中的字符串类型,相当于C语言中的char *,其本质是一个封装好的类string和char*的区别:char* 是一个指针string是一个内部封装了char* 的类,用来管理这个字符串,是一个char*型

2021-11-18 17:35:13 3229 4

原创 C++字符函数库 cctype

C++字符函数库 cctype简述库内函数目录简述C++从C语言中继承了一个与字符相关的函数库,它可以确定字符是否为大写字母、数字、标点符号等工作,这些函数包含在以下头文件中#include<cctype>库内函数我们先定义一个字符 char c;isalnum(c);如果括号内参数是字母或数字,函数就返回true,否则返回false。isalpha(c);如果参数是字母,函数返回true, 否则返回false。iscntrl(c);如果参数是控制字符,函数返回true。

2021-11-16 13:38:01 1674 4

原创 C++ map/multimap容器超详解

C++ map/multimap容器详解pair对组map的基本概念map的构造和赋值map的大小和交换map的插入和删除map的查找和统计map容器的排序规则pair对组在学习map之前我们先了解一下pair对组,因为map中的基本元素就是对组pair。pair是将2个数据组合成一组数据,当一个函数需要返回2个数据的时候,就可以选择pairpair的实现是一个结构体,主要的两个成员变量first和second,分别存储两个数据pair的创建:pair<T1,T2>

2021-11-13 19:45:57 2577 4

原创 C++ 迭代器(iterator)超详解+实例演练

C++ STL 迭代器详解一级目录二级目录三级目录一级目录二级目录三级目录

2021-11-13 10:00:41 56625 3

原创 C++ STL set容器详解

C++ set容器set/multiset容器的概念1.set的构造和赋值2.set的大小和交换3.set的插入和删除4.set的查找和统计5.set和multiset的区别6.pair对组的创建7.set容器的排序规则set/multiset容器的概念特点:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现的set和multiset的区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素注意:使用set或multis

2021-11-12 16:07:08 3343 4

原创 100行代码实现英语四六级高频单词的统计

一个程序实现英语四六级高频单词的统计写在前面过程描述单词类的创建二级目录写在前面英语四六级考试快到了,相信很多同学只想背一些高频单词,如何知道哪些是高频单词呢,大多数同学都会在网上搜索一通,但自己也不确定搜到的就是高频单词,因此,我想编写一个程序让电脑帮我们统计高频单词,只要给出足够多的英语四六级文章,这样统计出的结果一定会很准确的这个程序我是用C++编写的,如果你还不会C++也没关系,可以看看其中思路,那么让我们来看看具体实现过程吧过程描述1.创建一个单词类,用于存储某个单词及其出现的次数

2021-11-05 21:10:14 998

原创 C++ list容器详解

C++ list容器list容器的基本概念1.list的构造函数2.list的赋值和交换3.list的大小操作4.list的插入和删除5.list的数据存取6.list的反转与排序7.list的排序案例list容器的基本概念概念:list一种将数据进行链式存储的数据结构,被称为链表链表:是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:由一个存储数据元素的数据域和一个存储下一个结点地址的指针域组成优点:可

2021-10-31 07:10:15 5880

原创 LeetCode 136.只出现一次的数字题解

136.只出现一次的数字原题描述思路点拨源码解析原题描述思路点拨在解决此题前,我们先来了解一下异或运算(⊕)的两个性质:a⊕0=a ; 任何数与0异或都等于其本身a⊕a=0 ; 两个相等的数异或为0由此我们可以推导出: x⊕a⊕a=x;根据这个x⊕a⊕a=x性质,我们可以利用两个相同的数字异或来消除彼此,因此我们把此题所有元素异或一遍,出现两次的数全部互相消除了,最后的结果一定是只出现一次的数字源码解析class Solution {public:

2021-10-30 21:48:51 193

原创 LeetCode 1362.最接近的因数题解

LeetCode 力扣题目题目描述源码解析力扣题目题目描述源码解析

2021-10-30 17:40:26 4248

原创 LeetCode 1492.n的第k个因子题解

LeetCode 力扣题目题目描述源码解析力扣题目题目描述源码解析

2021-10-30 17:17:09 156

原创 C++ queue容器详解

C++ queue容器queue容器的基本概念deque的常用接口1.构造函数2.赋值操作3.数据存取:4.大小操作:测试queue容器的基本概念概念:queue是一种先进先出的数据结构,被称为队列,它的一端为入口,另一端为出口队列中进数据称为——入队(push)队列中出数据称为——出队(pop)队列容器允许从一端添加元素,从另一端删除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为使用deque需要包含头文件#include< deque >

2021-10-30 08:56:33 3217

原创 C++ stack容器详解

C++ stack容器stack容器的基本概念stack的常用接口1.构造函数2.赋值操作3.数据存取4.大小操作测试:stack容器的基本概念stack是一种先进先出的数据结构,被称为栈,它只有一端可以出入。栈中进入数据称为——入栈(push)栈中弹出数据称为——出栈(pop)注意:栈可以判断是否为空,也可以返回栈中元素个数,但栈不允许有遍历行为使用stack容器必须包含头文件#include< stack >stack的常用接口1.构造函数stack st

2021-10-30 08:53:09 4838 4

原创 C++STL案例之评委打分

评委打分案例一、案例描述二、实现步骤1.创建选手类2.存储选手对象3.得到平均分4.打印平均分三、源码汇总四、测试结果一、案例描述有n名选手,10个评委分别对每一名选手打分,去掉最高分和最低分,然后求平均分二、实现步骤具体流程:先创建一个选手类利用vector容器存储n个选手对象 (1)利用用随机数随机10个评委打分,并用deque保存打分 (2)对deque容器内分数排序,然后删除第一个和最后一个分数 (3)求deque中剩余分数的平均分并存储到vector容器中

2021-10-30 08:45:17 850 1

原创 C++ deque容器详解

C++ deque容器详解deque容器基本概念1.deque的构造函数2.deque的赋值操作3.deque的大小操作4.deque的插入和删除5.deque的数据存取deque容器基本概念功能:它是一个双端数组,也就是数据结构中的队列,可以对头端和尾端进行插入和删除操作deque和vector的区别:deque对于头部的插入和删除效率比vector高vector访问元素时速度比deque快,这和两者的内部实现有关deque内部工作原理:deque内部有个中控器,维护每段缓冲区中

2021-10-29 21:25:30 1651

原创 LeetCode 507.完美数

LeetCode 507.完美数 力扣题目题目描述源码解析力扣题目题目描述源码解析class Solution {public: bool checkPerfectNumber(int num) { int sum=0; for(int i=1;i*i<num;++i) { if(num%i==0) { sum+=i; if

2021-10-29 17:24:41 90

原创 LeetCode 204.计数质数题解

LeetCode 204.计数质数题解 204.计数质数题目描述源码解析204.计数质数题目描述源码解析class Solution {public: int countPrimes(int n) { //下标为质数时为true,其他为false vector<bool> isPrime(n,true);//初始化全为质数 int count=0; //计数 for(int i=2;i<n;++i

2021-10-29 17:07:57 121

原创 C++ vector容器详解

C++ vector容器详解目录vector容器的基本概念1.vector的构造函数2.vector的赋值操作3.vector的容量与大小4.vector的插入和删除5.vector数据存取6.vector互换容器7.vector预留空间写在最后目录vector容器的基本概念功能:vector容器的功能和数组非常相似,使用时可以把它看成一个数组vector和普通数组的区别:1.数组是静态的,长度不可改变,而vector可以动态扩展,增加长度2.数组内数据通常存储在栈上,而vector中数

2021-10-29 07:14:03 82557 27

原创 C++ string容器详解

string容器1.string的基本概念2.string的构造函数3.string的赋值操作二级目录三级目录1.string的基本概念本质:string是c++类型的字符串,其本质是一个封装好的类 string和char*的区别: 1.char* 是一个指针 2.string是一个内部封装了char* 的类,管理这个字符串,是一个char*型容器 特点: string类内部封装了很多成员函数 例如:查找find,拷贝copy,删除delete,替换replace,插入insert str

2021-10-27 08:34:47 952

原创 LeetCode 算法基础之计数法(C++)

LeetCode 算法基础之计数法(C++)目录1748.唯一元素的和题目描述原题链接思路点拨源码解析387.字符串中第一个唯一字符题目描述原题链接思路点拨源码解析1941.检测是否所有字符出现的次数相同题目描述原题链接思路点拨源码解析448.找到所有数组中消失的数字题目描述原题链接思路点拨源码解析1512.好数对的数目题目描述原题链接思路点拨源码解析目录1748.唯一元素的和题目描述原题链接唯一元素的和思路点拨nums数组中每个元素的值都在[1,100]中,因此我们可以创建一个大小为10

2021-10-26 23:40:06 683

原创 LeetCode·杨辉三角题解(C++)

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

2021-10-25 23:04:28 802

空空如也

空空如也

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

TA关注的人

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