![](https://img-blog.csdnimg.cn/20210326165725540.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
文章平均质量分 84
C/C++代码练习
LHlucky_2
努力而勤奋的代码人
展开
-
项目实践—高并发内存池
将程序中需要经常使用的核心资源先申请出来,放到一个池内,由程序自己管理,这样可以提高资源的使用效率,也可以保证本程序占有的资源数量。原创 2021-07-08 22:51:59 · 5886 阅读 · 6 评论 -
C_函数指针详解
如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。原创 2021-07-03 18:10:28 · 5758 阅读 · 6 评论 -
C++进阶数据结构_红黑树
R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉搜索树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。原创 2021-06-07 15:14:18 · 1185 阅读 · 26 评论 -
C++进阶数据结构_AVL树
AVL是一颗绝对平衡的二叉搜索树,要求每个节点的左右子树的高度差的绝对值不超过1,这样可以保证查询时候的时间复杂度为logN。转载 2021-06-05 17:37:10 · 219 阅读 · 2 评论 -
STL map&set用法详解
map<K,T>定义了一个保存 T 类型对象的 map,每个 T 类型的对象都有一个关联的 K 类型的键。set的所有元素都会根据元素的键值自动排序set元素的键值就是实值,实值就是键值。原创 2021-05-31 16:31:52 · 1399 阅读 · 17 评论 -
LeetCode-剑指Offer 65-不用加减乘除做加法
LeetCode-剑指 Offer 65-不用加减乘除做加法原创 2021-05-28 09:31:41 · 284 阅读 · 9 评论 -
二叉树前中后序遍历_(非递归)
1. 前序遍历2. 中序遍历3. 后序遍历原创 2021-05-17 21:54:27 · 334 阅读 · 6 评论 -
C++_多态详谈
1. 多态概念 2. 多态的定义及实现 3. 抽象类 4.多态的原理 5.单继承和多继承关系的虚函数表 6. 相关题目原创 2021-05-10 20:57:34 · 8777 阅读 · 38 评论 -
C++_继承详谈
1. 继承的概念及定义2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6. 继承与静态成员7.复杂的菱形继承及菱形虚拟继承8. 继承原理解释9 .继承的总结和反思10 .笔试面试题原创 2021-05-04 00:02:47 · 616 阅读 · 9 评论 -
Leetcode_25_K 个一组翻转链表
> 满难度系数 * * * * *,此题难度系数 * * * * *。> 满考频热度 * * * * *,此题热度 * * * * *。原创 2021-04-19 20:14:48 · 158 阅读 · 4 评论 -
C++_优先级队列(priority_queue) & 仿函数
1.优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最 大/小 的。2.仿函数(Functor)又称为函数对象(Function Object)是一个能行使函数功能的类。原创 2021-04-18 01:01:14 · 878 阅读 · 2 评论 -
剑指 Offer 52_两个链表的第一个公共节点
满难度系数 * * * * *,此题难度系数 * * *。满考频热度 * * * * *,此题热度 * * * * *。原创 2021-04-15 20:34:39 · 5732 阅读 · 1 评论 -
C++_vector_迭代器失效
迭代器是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来原创 2021-04-10 16:12:38 · 335 阅读 · 0 评论 -
牛客经典链表题—(NC3)链表中环的入口结点
满难度系数 * * * * *,此题难度系数 * * *。满考频热度 * * * * *,此题热度 * * * * *。原创 2021-03-30 15:22:05 · 1466 阅读 · 4 评论 -
C++_深浅拷贝详解
C++深浅拷贝详解与对比。原创 2021-03-29 16:03:52 · 3927 阅读 · 4 评论 -
牛客经典链表题—(NC4)判断链表中是否有环
满难度系数 * * * * *,此题难度系数 * *。满考频热度 * * * * *,此题热度 * * * * *。原创 2021-03-27 16:48:00 · 2033 阅读 · 4 评论 -
C++模板—(template)
1.泛型编程2.函数模板2.1 函数模板概念2.2 函数模板格式2.3 Swap()函数模板原理图2.4 函数模板的实例化2.4.1 隐式实例化2.4.2 显式实例化2.5 模板参数的匹配原则3.类模板3.1 类模板的定义格式3.2 类模板的实例化原创 2021-03-15 16:06:40 · 1118 阅读 · 2 评论 -
C++ 类和对象(下)
1.再谈构造函数 1.1构造函数体赋值 1.2初始化列表 1.3explicit关键字2.static成员 2.1概念 2.2特性3.c++11的成员初始化新玩法4.友元 4.1友元函数 4.2友元类5. 内部类原创 2021-03-10 22:51:13 · 229 阅读 · 4 评论 -
C++ _ string类常用函数(字符大小写转换与判断)
C++ _ string类常用函数(字符大小写转换与判断)1. isalpha 2.isalnum 3.islower 4.isupper 5.tolower 6.toupper原创 2021-03-03 16:26:29 · 11151 阅读 · 8 评论 -
C++ 类和对象(中)
1. 构造函数 2. 析构函数 3. 拷贝构造 4. 赋值运算符重载 5. 取地址运算符重载 6. const修饰的取地址运算符重载原创 2021-02-06 13:23:51 · 232 阅读 · 0 评论 -
C++ 类和对象(上)
目录1.面向过程和面向对象初步认识1.1面向对象1.2面向过程2.类的引入3.类的定义4.类的访问限定符与封装4.1访问限定符4.2封装5.类的作用域6.类的实例化7.类对象模拟8.this指针1.面向过程和面向对象初步认识面向过程bai就是分析出解决问题du所需要的步骤zhi,然后用函数把这些步骤一步dao一步实zhuan现,使用的时候一个shu一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。1原创 2021-02-04 18:05:19 · 1003 阅读 · 2 评论 -
C++ 入门超详解!
c++入门超详解!!!原创 2021-02-03 16:40:12 · 12283 阅读 · 24 评论 -
C/C++动态内存管理—(new与malloc)
文章目录1.C/C++内存分布2.C语言动态内存分配2.1 malloc2.2 calloc2.3 realloc2.4 free3.C语言动态内存代码示例4.C++动态内存分配4.1 new4.1.1 operator new4.2 delete4.2.1 operator delete5.C++动态内存代码示例6.new/delete和malloc/free的异同7.动态内存常见问题--内存泄露7.1内存泄漏有什么危害?7.2 如何避免内存泄漏?1.C/C++内存分布虚拟地址空间分布:由C/C+原创 2021-03-14 22:03:02 · 7427 阅读 · 7 评论 -
C语言——模拟实现库函数(strcat,strcmp,strcpy,srelen)
分别模拟实现库函数1.strcat2.strcmp3.strcpy4.srelen1.strcat#include<stdio.h>#include<string.h>void Merge(char a[], char b[], int n){ char* q = a; char* p = b; int m = 0; while (*q != '\0') q++; while (m <= n) {原创 2020-11-22 21:09:48 · 297 阅读 · 1 评论 -
C语言——(乘法口诀表)
输出乘法口诀表1.输出9*9标准乘法口诀表2.程序升级不仅可以只输出99还可以输出任意阶数1.输出9*9标准乘法口诀表#include<stdio.h>int main(){ for (int j = 1; j <= 9; j++) { for (int i = 1; i <= 9; i++) { printf("%d*%d=%d ", i, j, i * j); if (i == j) {原创 2020-11-22 21:18:32 · 8008 阅读 · 1 评论 -
模拟实现库函数(memcpy,memmove)
模拟实现库函数memcpy,memmove库函数memcpy和memmove功能都很强大也很重要,现在通过自我编码方式实现两个库函数的功能。1.memcpy是C和C++使用的内存拷贝函数,函数原型为void *memcpy(void *destin, void *source, unsigned n);函数的功能是从源内存地址的起始位置开始拷贝若干个字节到目标内存地址中,即从源source中拷贝n个字节到目标destin中。2.memmove用于拷贝字节,函数原型为:void memmove(原创 2020-11-22 21:40:32 · 1196 阅读 · 0 评论 -
八大排序算法(直接插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,计数排序)
八大排序算法(直接插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,计数排序)原创 2021-01-30 16:49:53 · 8529 阅读 · 2 评论 -
二叉树的深度优先遍历-(前序,中序,后序)
深度优先搜索(DFS, Depth First Search)是一个针对图和树的遍历算法。对于二叉树,深度优先遍历有前序,中序,和后序三种遍历方式。原创 2021-01-20 16:03:24 · 6790 阅读 · 6 评论 -
堆排序(Heapsort)
1.堆排序基本介绍:堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序的平均时间复杂度为 Ο(nlogn)堆排序视频详解入口大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列;小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列;2.堆的基本结构(小顶堆):设当前元素在数组中以R[i]表示,那么:(1) 它原创 2021-01-15 22:26:30 · 2914 阅读 · 2 评论 -
LeetCode-225. 用队列实现栈&232. 用栈实现队列
LeetCode225. 用队列实现栈232. 用栈实现队列原创 2021-01-09 17:11:52 · 5483 阅读 · 0 评论 -
栈(Stack)和队列(Queue)
什么是栈(栈存储结构) 顺序栈及基本操作(包含入栈和出栈) 什么是队列(队列存储结构) 链式队列及基本操作(C语言实现) 用C语言实现栈及各个功能(数组) 用C语言实现队列及各个功能(链表) 栈和队列的主要区别1.什么是栈(栈存储结构)同顺序表和链表一样,栈也是用来存储逻辑关系为 "一对一" 数据的线性存储结构队列存储结构的实现有以下两种方式:顺序栈:在顺序表的基础上实现的栈结构; 链栈:在链表的基础上实现的栈结构;基于栈结构的特点,在实际应用中,通常只会对栈执行以下两...原创 2021-01-04 00:08:12 · 5882 阅读 · 1 评论 -
LeetCode147-对链表进行插入排序
> 对一个链表中的节点进行插入排序> 插入排序算法的视频链接及详解所示如下:> [插入排序算法视频链接]原创 2020-12-31 23:22:34 · 187 阅读 · 0 评论 -
LeetCode-环形链表|+环形链表||
LeetCode 141-环形链表+142-环形链表||原创 2020-12-27 19:38:14 · 3022 阅读 · 3 评论 -
LeetCode经典题-整数反转以及回文数判断
1.整数反转2.回文数判断原创 2020-12-26 21:42:36 · 2327 阅读 · 2 评论 -
const的作用,面试高频题!
const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。另外CONST在其它编程语言中也有出现,例如Pascal、C++、PHP5、B#.net、HC08C、C#等。1、 修饰变量2、 修饰数组3、 修饰指针4、 修饰函数参数1、 修饰变量C语言中采用const修饰变量,功能是对变量声原创 2020-11-29 16:28:05 · 700 阅读 · 0 评论 -
static三大作用,面试高频题!!!
static(计算机高级语言关键字)static三大作用:1.修饰局部变量–静态局部变量2.修饰全局变量–静态全局变量3.修饰函数–静态函数原创 2020-11-25 09:23:25 · 3092 阅读 · 6 评论 -
编码实现杨辉三角
用二维数组和循环实现杨辉三角的C语言编译。原创 2020-11-24 16:57:28 · 1998 阅读 · 6 评论 -
编码实现斐波那契数列
斐波那契数列(Fibonacci sequence)又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)图片解释更为直观:源代码_1(数组实现):#include <stdio.h>原创 2020-11-23 21:21:52 · 885 阅读 · 0 评论 -
C语言——排雷小游戏
这次写了一个排雷小游戏,源代码及流程如下:1,分别运用头文件(game.h)以及源代码(main.c)(game.c)的形式让代码更加清晰;2,难点:初始界面的布局以及微调让其更加美化。扫描一个格子周围8个格子雷的个数以及棋盘周围判断时的溢出问题。3,优化为了界面更加清新简单使用系统cls清屏小技巧。game.h#include "game.h"void menu(){ printf("###############################\n"); pri原创 2020-11-21 23:18:39 · 445 阅读 · 0 评论 -
C语言——三子棋
三子棋小游戏可分解为以下过程:1,设置一个游戏选择界面。2,玩家落子以及系统落子,并显示落子后界面。3,落子完毕后判断胜负。1,设置一个游戏选择界面。界面源代码如下:void menu(){while (1){printf("欢迎访问\n");printf("1.play 2.exit\n");printf("请选择:");int i;scanf_s("%d", &i);if (i == 1)game();if (i == 2)break;}}2,玩家落原创 2020-11-21 22:57:41 · 156 阅读 · 0 评论