自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

constantin_的博客

新手上路

  • 博客(80)
  • 收藏
  • 关注

原创 my neovim init.vim

set numberset relativenumberset shiftwidth=4set tabstop=4set softtabstop=4set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936set termencoding=utf-8set encoding=utf-8set autoindentset cursorlineset wildmenuset showmatchset showcmdset list.

2020-09-13 01:15:27 394

原创 C语言base64编解码

base64码简介Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HT...

2019-04-09 22:13:32 1311

转载 ZerMQ安装与使用

windows下 使用vs2010的,v4.0.4的版本官方 0mq api 好像还没加上去,我是参照老版本(v3.1)的用法来的。使用前你要对windows下动态库的使用有个基本了解。我的上一篇博客有讲,但有点乱,有时间再改一改。这里我是用了动态库的隐式连接,需要动态库的 动态库文件".dll" , 动态库的LIB文件".lib" , 动态库的函数引入声明 "zmq.h" 和 "zmq_...

2019-01-29 22:21:01 731

转载 linux 学习

一、Linux 为何物Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Max OS ,至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有个基本概念了,这里简单介绍下操作系统在整个计算机系统中的角色。我们的 Linux 也就是系统调用和内核那两层,当然直观的来看,我们使用的操作系统还包含一些在其上运行的应用程序,比如文本编辑器,浏览器,电...

2018-06-25 14:36:25 463

转载 附带官方答复

#include "maininterface.h"#include"QGraphicsPixmapItem"#include"QMouseEvent"#include"iconitem.h"#include"QGraphicsDropShadowEffect"mainInterface::mainInterface(QWidget *parent ) :QGraphicsVi...

2018-05-15 16:49:30 281

原创 code

// 控制字体系列。 "editor.fontFamily": "'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'", // 覆盖当前所选颜色主题中的编辑器颜色和字体样式。 "editor.tokenColorCustomizations": {},...

2018-05-08 15:51:23 931

原创 单链表的基本操作

单链表的基本操作//////////////////////////////////////////// //单链表的初始化,建立,插入,查找,删除。// //Author:Wang Yong // //Date: 2010.8.19 // ////////////////////...

2018-04-05 16:08:28 322

原创 快速排序

#include <stdio.h>#include <stdlib.h>#include <time.h>#define SIZE 50int main(){ int i; int a[SIZE]; srand((unsigned int)time(NULL)); for(i = 0;i < SIZE;i++...

2018-04-02 11:15:19 194

原创 结构体内存对齐

sizeof与struct——求结构体大小的计算方法sizeof浅析(一)——求结构体大小 这篇文章讲了sizeof求结构体大小的计算方法,并给出可以套用的准则:一、存储变量时地址要求对齐,编译器在编译程序时会遵循两条原则:(1)结构体变量中成员的偏移量必须是成员大小的整数倍(0被认为是任何数的整数倍) (2)结构体大小必须是所有成员大小的整数倍,也即所有成员大小的公倍数。二、 对于嵌套的结构体,...

2018-04-01 20:17:45 198

原创 C++实现链表逆序打印、链表反转

//题目:C++实现链表逆序打印、链表反转// 如何将链表逆序,取决于题目的要求。如果面试官只要求打印,一般不改动链表结构为好,如果要求改变链表的方向,则需要改变结构,再顺序打印。// 方法1:只逆序打印,不改变结构。采用递归,到达尾结点时打印输出,否则进入下一个结点的递归,当递归一层层退出的时候,便可以实现从尾到头的打印。// 方法2:头插法,改变结构。从第二个结点开始往后,依次把每个结点...

2018-03-29 19:58:04 1077

原创 ubuntu安装codeblock的方法

由于本人比较喜欢体积较小的IDE,不喜欢太多东西,运行很慢的VS,所以在windows下发现了很好用的codeblock,现在把它安装到ubuntu系统的方法写下来总体方法很简单,用的最简单的apt安装的,也可以去官网下载codeblock的安装包终端输入几个指令就解决了sudo apt-get install build-essentialsudo apt-get install gdbsud...

2018-03-27 17:07:16 4516

原创 C语言const易错点

const int a; int const a; 这两个写法是等同的,表示a是一个int常量。const int *a; 表示a是一个指针,可以任意指向int常量或者int变量,它总是把它所指向的目标当作一个int常量。也可以写成int const* a;含义相同。int * const a; 表示a是一个指针常量,初始化的时候必须固定指向一个int变量,之后就不能再指向别的地方了。int co...

2018-03-27 13:43:01 356

原创 c++现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度

题目描述现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度输入描述:输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号输出描述:输出树的高度,为一个整数示例1输入50 10 21 31 4输出3#include <iostream&...

2018-03-26 15:00:53 3104

原创 设有n个正整数,将他们连接成一排,组成一个最大的多位整数

题目描述:设有n个正整数,将他们连接成一排,组成一个最大的多位整数。如:n=3时,3个整数13,312,343,连成的最大整数为34331213。如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。输入描述:有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N<=100),第二行包含N个数(每个数不超过1000,空格分开)。输出描述:每组数据输出一个表示最大的...

2018-03-26 13:53:04 8074 1

转载 怎么让sublime text3可以运行c/c++

轻巧便捷的sublime text 3代码编辑功能非常强大,并且很漂亮啊有木有!!!!以前我会在安装了CodeBlocks这样的编译器的基础上,再安装一个NotePad,作为编辑器。因为编辑器类似于记事本,只是作为编辑,有时候简单的看代码或者改代码并不需要大体积的编译器,只是需要打开代码修改一下而已,我们需要一个小巧简便的,又能高亮代码的东西~然而自从发现了Sublime这款软件之后,就对它情有独...

2018-03-25 16:43:59 58824 25

原创 linux与汇编

Linux操作系统是用C语言编写的,汇编只在必要的时候才被人们想到,但它却是减少代码尺寸和优化代码性能的一种非常重要的手段,特别是在与硬件 直接交互的时候,汇编可以说是最佳的选择。Linux提供了非常优秀的工具来支持汇编程序的开发,使用GCC的内联汇编能够充分地发挥C语言和汇编语言各 自的优点。作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言...

2018-03-25 11:40:24 1460

原创 汇编语言基础知识点

汇编指令和机器指令一一对应,有编译器翻译识别,计算机无法直接识别一个存储单元等于1字节 1字节等于8位1KB=1024Byte(字节)1Byte=8bit(位)CPU中,指令和数据都是二进制形式存在磁盘的数据,CPU无法直接使用,只能读到内存中,才能被CPU使用CPU可以使用的数据,是在存储器中存储器被划分为很多存储单元,以0开始编号,一个单元存储一字节,即8位寄存器是一种比内存和二级缓存更低一层...

2018-03-25 11:35:04 7133 1

原创 微机原理8086CPU

8086CPU有14个寄存器:AX BX CX DX SI DI SP BP IP CS SS DS ES PSW寄存器16位,存放2个字节ABCDX为通用寄存器2^16-1最大数据存放8086上一代CPU中的寄存器都是8位  四个寄存器可以分为两个独立的8位寄存器使用分为AH、AL 高八位低八位数据最大存放16位8226H+8226H=1044C 超出的1进位前两位为高八位,后两位为低八位检测点...

2018-03-25 11:28:30 1657

转载 C/C++开发者必不可少的15款编译器+IDE

Web开发者可选择的编程语言有很多比如,Java、.Net、PHP、Ruby、Perl、Python等等,但是今天我们要讨论的是两个古老且非常流行的语言,即C/C++。正是由于其迷人的特性,赋予了它们更加有效的功能,并且也获得了各大工具厂商的支持。如今,这两门语言依然活跃在编程领域里,其不仅拥有者强大的功能集,而且还提供了强大的安全保障。本文,笔者专为C/C++编码者收集了15款令人印象深刻的ID...

2018-03-23 20:32:16 42935 8

原创 c++整理--虚函数

一、虚函数是这么实现的解析:  简单的说,虚函数是通过虚函数表实现的,那么什么是虚函数表呢?  事实上,如果一个类中含有虚函数表,则系统会为这个类分配一个指针成员指向一张虚函数表(vtbl),表中每一项指向一个虚函数的地址,实际上就是一个函数指针的数组。为了说明虚函数表,请看程序: class Parent { public: virtual vo...

2018-03-23 16:04:09 170

原创 c++整理--函数重载

一、为什么C语言不支持函数重载而c++能支持什么是函数重载?为什么C语言不支持函数重载,而c++能支持函数重载?解析:  函数重载是用来描述同名函数具有相同或者相似的功能,但数据类型或者是参数不同的函数管理操作。在C语言里需要写两个不同名称的函数来进行区分。 #include <iostream> using namespace std; ...

2018-03-23 16:01:05 201

原创 c/c++整理--析构函数

c++中虚析构函数的作用是什么?  析构函数是为了在对象不被使用后释放它的资源,虚函数是为了实现多态。那么,把析构函数声明为virtual有什么作用呢? 请看下面代码:<span style="font-size:18px;">#include <iostream> using namespace std; class Base { public...

2018-03-23 15:19:00 1200

原创 c/c++整理--c++面向对象(5)

构造函数的使用以下代码中的输出语句为0吗?为什么? #include <iostream> using namespace std; struct CLS { int m_i; CLS(int i):m_i(i){ } CLS() { ...

2018-03-23 15:11:22 144

原创 c/c++整理--c++面向对象(4)

一、对静态数据成员的正确描述下列对静态数据成员的描述中,正确的是A、静态数据成员可以在类体中进行初始化B、静态数据成员不可以被类的对象调用C、静态数据成员不能收private控制符的作用D、静态数据成员可以直接用类名调用解析:A错误。静态数据成员必须在类外面初始化,以示与普通数据成员的区别B错误CD正确二、main函数执行前还会执行什么代码#include <iostream>    ...

2018-03-23 15:08:36 152

原创 c/c++整理--c++面向对象(3)

一、与全局对象相比,使用静态数据成员有什么优势优势:(1)静态数据成员没有进入程序的全局命名空间,因此不存在程序中其他全局命名冲突的可能性。(2)使用静态数据成员可以隐藏信息。因为静态数据成员可以是private成员,而全局对象不能二、有哪几种情况只能用intialization list,而不能用assignment  无论是在构造函数初始化列表中初始化成员,还是在构造函数体中对它们赋值,最终结...

2018-03-23 15:07:23 138

原创 c/c++整理--c++面向对象(2)

一、看代码写结果——c++类成员的访问 <span style="font-size:18px;">#include <iostream> using namespace std; #define public private<span style="white-space:pre;"> &l...

2018-03-23 15:05:41 163

原创 c/c++整理--c++面向对象(1)

一、描述面向对象技术的基本概念面向对象是指按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的方法,包括类、对象、消息以及类的特性等方面的内容。类(class):具有相似的内部状态和运动规律的实体集合。类来自于人们认识自然、认识社会的过程。在这一过程中,人们主要使用两种方法:有特殊到一般的归纳法和一般到特殊的演绎法。在归纳过程中,从一个一个具体的...

2018-03-23 15:03:21 198

原创 c语言fgets函数的用法

fgets()函数用于从文件流中读取一行或指定个数的字符,其原型为:    char * fgets(char * string, int size, FILE * stream);参数说明:string为一个字符数组,用来保存读取到的字符。size为要读取的字符的个数。如果该行字符数大于size-1,则读到 size-1 个字符时结束,并在最后补充' \0';如果该行字符数小于等于 size-1...

2018-03-23 11:46:13 13998

原创 C++输入一个字符串,去掉这个字符串中出现次数最少的字符 例如: 输入:abcabbc 输出:bbb

统计字符的个数,记录出现最少的字符,然后再输出#include <iostream>using namespace std;int main(){ char str[100]; cin >> str; // 统计字符大小 int count[256] = {0}; char *p = str; while (*p != '\0') { coun...

2018-03-22 14:46:53 1172

原创 C语言typedefine 和define的区别

define :宏定义,在预编译阶段就进行处理,简单的字符串代换,typedefine:编译时进行处理,不是简单的替换,而是对类型说明符的重新命名。被命名的标识符具有类型说明的功能,代码说明#include <stdio.h>#define P1 char*typedefine char* P2;int main(){ P1 x,y; P2 a,b; ...

2018-03-21 16:47:41 9840

原创 C++流的基本概念

在C++语言中,数据的输入和输出(简写为I/O)包括对标准输入设备键盘和标准输出设备显示器、对在外存磁盘上的文件和对内存中指定的字符串存储空间(当然可用该空间存储任何信息)进行输入输出这三个方面。对标准输入设备和标准输出设备的输入输出简称为标准I/O,对在外存磁盘上文件的输入输出简称为文件I/O,对内存中指定的字符串存储空间的输入输出简称为串I/O。C++语言系统为实现数据的输入和输出定义了一个庞...

2018-03-21 16:16:19 5864

原创 C/C++语言void及void指针深层探索

1.概述  许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义  void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。  void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变...

2018-03-21 16:08:25 170

原创 C语言缓冲文件系统和非缓冲文件系统

C 语言所使用的磁盘文件系统有两大类:一类称为缓冲文件系统,又称为标准文件系统;另一类称为非缓冲文件系统。 缓冲文件系统的特点是系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区。从磁盘向内存读入数据时,则一次从磁盘文件将一些数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送给接收变量;向磁盘文件输出数据时,先将数据送到内存中的缓冲区,装满缓冲区后才一起送到磁盘去。 用缓冲区可以...

2018-03-21 16:07:20 2296

原创 C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区

C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区  栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。  堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用...

2018-03-21 16:06:18 180

原创 C语言 scanf()和gets()函数的区别

C语言 scanf()和gets()函数的区别1.相同点:scanf( )函数和gets( )函数都可用于输入字符串2.不同点:两者在功能上有所区别,具体区别如下:要实现如下需求“从控制台输入字符串”有如下两种实现方式:1>使用gets()函数实现使用上诉代码实现时,我们会发现控制台打印如下信息:[即警告gets()是不安全的]gets()函数总结:(1)gets() 从标准输入设备读取字符...

2018-03-21 00:12:59 6862

原创 C++基础知识简答题

1、C++ 可执行程序的内存分布BSS:Block Started by Symbol 存放程序中未初始化的全局变量 数据段: 存放已初始化的全局变量,静态内存分配 代码段: 存放执行代码 堆heap: 存放运行中动态分配的内存段,可扩张或缩减 栈stack: 存放程序的局部变量,在函数被调用时,栈还用来传递参数和返回值2、C++编译原理1、预编译:宏展开过程 2、编译:inline在此时展开,从...

2018-03-20 19:00:42 4802

原创 c++入门基础知识

命名空间 刚开始接触c++,我们会发现与C语言相比不光头文件有所不同,还会发现using namespce std;这句话,其实这就是c++的命名空间。 (1)概念 命名空间是为了防止名字冲突提供更加可控的机制。命名空间分割了全局命名空间,其中每一个命名空间是一个作用域。由三部分组成,分别是namespace、空间名字和一系列由花括号括起来的声明和定义。 (2)作用 是建立一些互相分隔的作用域,把...

2018-03-20 18:59:25 163

原创 C语言题目地图上有m个城市,序号依次为1,2,3....m,刚开始你在1,若每次只能从当前城市去往当前序号加1或者加3的城市,要到达m城市(m>3),有多少种走法

地图上有m个城市,序号依次为1,2,3....m,刚开始你在1,若每次只能从当前城市去往当前序号加1或者加3的城市,要到达m城市(m>3),有多少种走法要想到达m,则前一个应该是m - 1或者m -3;因此可以利用递归的思想,具体实现的源码如下#include <iostream>using namespace std;int step(int m){ if (m =...

2018-03-20 18:48:01 2172

原创 C语言判断计算机存储是大端还是小端

计算机的一个int型数据是用多个字节表示的,如果在内存中存放时标称该数据的地址中存放的是数据的最低字节,就叫小端机,反之把高字节存放在标称地址中的则称为大端机。所以可以定义一个int变量,将其地址强制为char *型地址,检测该地址中的数据若是int变量的最低字节,则是小端机,反之则为大端机。代码如下://#include "stdafx.h"//If the vc++6.0, with this...

2018-03-20 13:45:27 1493

原创 C语言快速排序算法

void sort(int *a, int left, int right){ if(left >= right)/*如果左边索引大于或者等于右边的索引就代表已经整理完成一个组了*/ { return ; } int i = left; int j = right; int key = a[left]; w...

2018-03-18 14:09:25 309 1

空空如也

空空如也

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

TA关注的人

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