
C/C++
文章平均质量分 53
_silverBlack
程序媛 刺密
展开
-
c++ linux utf-8 中文字符串切割
转载自:https://blog.youkuaiyun.com/benojan/article/details/43883277UTF-8 采用变长度字节来表示字符,理论上最多可以到 6 个字节长度。UTF-8 编码兼容了 ASC II(0-127), 也就是说 UTF-8 对于 ASC II 字符的编码是和 ASC II 一样的。对于超过一个字节长度的字符,才用以下编码规范:左边第一个字节1...转载 2020-01-05 10:59:34 · 604 阅读 · 0 评论 -
二叉搜索树Binary Search Tree的构造、添加元素、删除元素
一、概念简单介绍一下BST的概念,可以将每个BST中的节点看成一个结构体,结构体中包含该节点的左右孩子以及该节点的key值。在BST中,每个节点都比它的左孩子要大(如存在的话)且比它的右孩子要小(若存在的话)。由BST的概念可知,按照中序遍历的方式遍历一棵BST,一定会得到一个递增的有序序列。在含有n个节点的BST中查询某个元素是否存在时,当这棵BST是一棵极度不平衡的二叉树,即每个节...原创 2019-07-10 23:02:13 · 1262 阅读 · 0 评论 -
二叉树前中后序遍历的非递归实现以及层次遍历、zig-zag型遍历详解
前言二叉树的遍历是一个比较常见的问题,递归实现二叉树的前中后序遍历比较简单,但非递归实现二叉树的前中后序遍历相对有难度。这篇博客将详述如何使用非递归的方式实现二叉树的前中后序遍历,在进行理论描述的同时会附上递归实现以及非递归实现的代码。此外,本文还将描述二叉树的层次遍历以及zig-zag型遍历。一、前序遍历1、概念对于一棵二叉树,前序遍历将先遍历根节点,再遍历左子树(如果存在的话)...原创 2019-07-08 16:36:13 · 910 阅读 · 0 评论 -
大小堆详解&C++实现&复杂度分析
大小堆介绍部分转载自:二叉堆之图文解析二叉堆的删除、复杂度分析和代码是自己写的~堆和二叉堆的介绍堆的定义堆(heap),这里所说的堆是数据结构中的堆,而不是内存模型中的堆。堆通常是一个可以被看做一棵树,它满足下列性质:[性质一] 堆中任意节点的值总是不大于(不小于)其子节点的值;[性质二] 堆总是一棵完全树。将任意节点不大于其子节点的堆叫做最小堆或小根堆,而将任意节点不...转载 2018-07-13 21:53:08 · 5200 阅读 · 1 评论 -
C++运算符重载
转载自:https://blog.youkuaiyun.com/lishuzhai/article/details/50781753为什么要对运算符进行重载:C++预定义中的运算符的操作对象只局限于基本的内置数据类型,但是对于我们自定义的类型(类)是没有办法操作的。但是大多时候我们需要对我们定义的类型进行类似的运算,这个时候就需要我们对这么运算符进行重新定义,赋予其新的功能,以满足自身的需求。C+...转载 2017-11-27 19:25:11 · 690 阅读 · 0 评论 -
C++赋值运算符重载
转载自:https://www.cnblogs.com/zpcdbky/p/5027481.html写在前面:关于C++的赋值运算符重载函数(operator=),网络以及各种教材上都有很多介绍,但可惜的是,内容大多雷同且不全面。面对这一局面,在下在整合各种资源及融入个人理解的基础上,整理出一篇较为全面/详尽的文章,以飨读者。正文:Ⅰ.举例例1#include<io...转载 2017-11-27 19:30:25 · 598 阅读 · 2 评论 -
C++引用
转载自: C++中引用(&)的用法和应用 对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效...转载 2017-11-27 20:48:04 · 184 阅读 · 0 评论 -
switch内部的变量定义
转载自:switch case语句内部变量定义 switch case语句是非常常用的语句,入门的码农也知道是做什么的。但关于switch case内定义变量的问题,网上的很多博文都有谬误,在这里我写一下对这个语句的了解。 一先看合法的定义方式: [cpp] view plain copyint main(int argc, const char * arg...转载 2018-02-01 17:39:59 · 1571 阅读 · 0 评论 -
C++内存对齐
[C++]字节对齐与结构体大小 (下面部分内容转载自 内存对齐与补齐)一、解释 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。各个硬件平台对存储空间的处理上有很大的不同...转载 2018-03-02 17:13:10 · 198 阅读 · 1 评论 -
二维指针malloc和free
刷leetcode 169的时候,先用的二维指针,死活不过,显示 ‘double free or corruption out'将二维指针换成二维数组就过了 仔细看代码,才发现 malloc的时候出错了.....mark 一下二维指针的内存分配与释放。 // int a[m][n]int** a;a = (int**)malloc(sizeof(int*)*m);...原创 2017-04-27 10:01:17 · 3937 阅读 · 0 评论 -
C++中几种读取数据的函数的用法
本文转载自:C++中cin的详细用法 代码编译运行环境:VS2012+Win32+Debug。(我用Eclipse也跑过一遍了)1.cin简介cin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream 类...转载 2017-11-25 21:58:45 · 15074 阅读 · 0 评论 -
友元函数和友元类
转载自 友元函数和友元类 友元函数和友元类友元提供了不同类的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。通过友元,一个不同函数或另一个类中的成员函数可以访问类中的私有成员和保护成员。c++中的友元为封装隐藏这堵不透明的墙开了一个小孔,外界可以通过这个小孔窥视内部的秘密。友元的正确使用能提高程序的运行效率,但同时也破坏了类的封装性和数据的隐藏性,导致程序可维护性变差。...转载 2017-11-27 16:19:21 · 221 阅读 · 0 评论 -
模块化编程 自顶向下编程 自底向上编程 结构化编程 面向对象编程 面向过程编程
模块化程序设计(modular programming),简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。逐步求精的结果是得到一系列以功能块为单位的算法描述。以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。模块化的目的是为了降低程序复杂度,使程序设计、调试和维...原创 2016-09-08 19:44:41 · 6275 阅读 · 0 评论 -
循环队列中判断队满与队空
转载自:https://blog.youkuaiyun.com/u010429311/article/details/51043149在引用循环队列前,我们需要了解队列是如何线性实现的(下图有错,x=sq[front++])。 简单地讲,便是当队列为空时,front = rear = 0,每当插入元素尾指针+1,删除元素是头指针+1。但是,我们会发现一个问题,如上面的第四个图,0,1,2三个空间并没有...转载 2018-08-02 16:52:25 · 19870 阅读 · 3 评论 -
C++11的右值引用
转载自:https://blog.youkuaiyun.com/z914022466/article/details/76851363 以及https://www.cnblogs.com/qicosmos/p/4283455.html其中第一篇是入门科普性质的右值引用介绍,第二篇比较深入。略有删减。入门级:一、引用的本质class A{ int &a;};clas...转载 2018-08-14 11:41:42 · 6720 阅读 · 6 评论 -
二维数组与指针
转载自:https://www.cnblogs.com/chenyangyao/p/5222696.html声明:本文为原创博文,如有转载,请注明出处。若本文有编辑错误、概念错误或者逻辑错误,请予以指正,谢谢。 指针与数组是C/C++编程中非常重要的元素,同时也是较难以理解的。其中,多级指针与“多维”数组更是让很多人云里雾里,其实,只要掌握一定的方法,理解多级指针和“多维”数组完全可以像理...转载 2018-05-08 17:31:50 · 3412 阅读 · 2 评论 -
C/C++内存管理
转载自:https://www.cnblogs.com/Azhu/p/4436531.html内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到J...转载 2018-04-11 20:31:37 · 155 阅读 · 0 评论 -
字符数组 字符指针 字符串常量 数组名与指针变量
写得很好的总结~转载自:https://www.cnblogs.com/fly1988happy/archive/2012/04/06/2434222.html1. 以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符。如在代码中写"abc",那么编译器帮你存储的是"abc\0"。2. "abc"是常量吗?-----------注意字符串的存储形式答案是有...转载 2018-04-17 10:41:56 · 1669 阅读 · 2 评论