- 博客(13)
- 收藏
- 关注

原创 C语言不用系统库(只用getchar和putchar)实现scanf和printf
因为C语言的printf和scanf有很多种数据类型,今天我就先实现三种吧,分别是%s, %d, %a,如何想要知道看如何实现double或者float浮点型的实现,所有函数自己手动实现,这是最好的学习方式。printf实现#include "stdafx.h"#include "stdio.h"char * Itoa(char * pStr, const int & rIn...
2019-12-27 16:53:36
707
原创 基于GMSSL的常用算法特点总结以及源代码分享
本文主要有两部分,第一部分是主要是总结一些算法的特点,第二部分是源代码,主要是基于GMSSL库的正确性测试和性能测试
2022-07-09 15:04:08
1526
原创 C++单例模式详解
单例模式(Singleton):一种常用的设计模式,一般指在一个进程中使用单例模式的类只允许存在一个实例化对象,应用场景:管理共享资源: 常见于程序配置文件,在整个程序运行期间,使用单例模式的类实例化对象来统一管理配置文件,该进程的其他对象通过访问该实例化对象来操作配置文件,在复杂的应用程序中简化了配置文件的管理。功能单一但是不适合频繁实例化或者销毁的对象, 单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等..
2021-01-27 22:22:23
1055
2
转载 Linux中apt与apt-get命令的区别与解释
原文出处:https://www.sysgeek.cn/apt-vs-apt-get/Ubuntu 16.04 发布时,一个引人注目的新特性便是 apt 命令的引入。其实早在 2014 年,apt 命令就已经发布了第一个稳定版,只是直到 2016 年的 Ubuntu 16.04 系统发布时才开始引人关注。随着 apt install package 命令的使用频率和普遍性逐步超过 apt-get install package,越来越多的其它 Linux 发行版也开始遵循 Ubuntu 的脚步,开始.
2021-01-22 22:20:16
160
原创 红黑树的实现
定义:每个结点要么是“红色”,要么是“黑色”(后面将说明)所有的叶结点都是空结点,并且是“黑色”的如果一个结点是“红色”的,那么它的两个子结点都是“黑色”的。结点到其子孙结点的每条简单路径都包含相同数目的“黑色”结点根结点永远是“黑色”的首先,是先有红黑树,再通过无数的经验总结出来了红黑树特殊的性质。所以不必深入研究这些性质是怎么来的。2.说明:红黑树全名平衡二叉检索树,主要应用于一些系统方面:Linux进程调度 CFSNginx Timer事件管理Epoll事件块的管理.
2021-01-18 21:44:18
236
原创 平衡二叉树的原理及实现代码
1.平衡二叉树的原理定义:1、定义: (1)任意一个节点的左右子树高度差的绝对值不超过的1. (2)任意节点的左右子树都是平衡二叉树的二叉查找树.2、说明:二叉树是通过空间换取时间的数据结构,查找速度有点类似于二分法,平衡二叉树是基于二叉树的一个优化,主要用来解决普通的二叉树在使用时会出现单支二叉树的极端情况,这样的话二叉树就和普通的链表(时间复杂度(O(Logn)))没啥区别,无法体现二叉树的O(Logn)的时间复杂度的优势.3、平衡二叉树的判断标准–平衡因子:(1)定义:平衡因子
2021-01-18 19:36:17
311
原创 探讨C++11新标准(二)-移动语义和右值引用
今天我们主要讨论C++11的移动语义和右值引用,其中包含一些问题,什么是移动语义?,C++11如何支持他,为什么需要移动语义?强制移动move函数,本章主要讨论以上问题,有兴趣的可以继续往下阅读。为什么需要移动语义?我们先来看看这段C++11之前的代码string a(1000, 'a');//对象a有1000个字符假设他有一个函数将a中的1000个字符反转一下返回一个新的对象。string Revarsal(string & str){ string temp; //do som
2020-06-30 10:22:41
179
原创 探讨C++11新标准(一)-C++11的一些语法变化
c++11内容也不少,所以我分为三篇文章去探讨,第一篇主要探讨一些新的语法变化,第二篇主要探讨移动语义和右值应用,第三篇主要讲解类的变化。
2020-06-20 17:32:23
639
1
转载 g++编译后运行时无法链接动态库的解决方法
本文详细介绍了linux 下gcc头文件指定方法,以及搜索路径顺序的问题。另外,还总结了,gcc动态链接的方法以及路径指定,同样也讨论了搜索路径的顺序问题。本文包含了很多的例子,具有很强的操作性,希望读者自己去走一遍。一.#include <>与#include “”#include <>直接到系统指定的某些目录中去找某些头文件。#include “”先到源文件所在文件夹去找,然后再到系统指定的某些目录中去找某些头文件。二.gcc指定头文件的三种情况:1.会在默认情况下指定
2020-06-15 12:06:09
2256
原创 简单实现STL的迭代器Iterator
自己动手实现STL的迭代器.我将在本偏文章中STL中的List链表类来当做例子,来实现迭代器原理.所以对链表不太熟悉的也可以进来看看.迭代器说到底就是将数据层和用户交互层中间增加一个外壳,让用户不用关心底层数据存储和管理是如何实现,在保护了数据的同时也更加方便了用户的使用。首先list是个模板链表类首先声明类template <typename T>class List{ };2.为了用链表的方式存储数据,类中必须有一个不能让用户看到的结点结构体,方便管理链表,类中还必
2020-06-14 17:15:54
238
原创 关于C++类的几种编译器默认提供的构造函数和析构函数总结
出来工作2个月了,因为最近用到一些平时用的比较少C++11的构造函数,今天有时间就总结一下
2019-12-27 10:47:59
1771
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人