我的一些小研究
文章平均质量分 64
_从未止步
just do IT
展开
-
嵌套重载以及模板特化
我在用c++实现一个链式栈的时候,想利用其特性实现一个”简单“ 的重载,却不料这个重载却是如此的艰辛,我用的是VS2013,编译器一直出现链接错误,我检查了好久,认为没有错误,而其中大有文章。代码如下:#pragma once#include #include #include using namespace std;templateclass stack;//templa原创 2015-10-21 18:26:43 · 689 阅读 · 0 评论 -
优化编译器的能力和局限性
影响1: 编译器/////////////////////////////////////////////////////////////////////////// 1 #include 2 3 void twiddle1(int *xp, int* yp) 4 { 5 *xp += *yp;原创 2016-03-18 22:16:32 · 1032 阅读 · 1 评论 -
Linux 下 Gcc 生成和使用静态库和动态库详解
Linux 下 Gcc 生成和使用静态库和动态库详解什么是库在 windows 平台和 linux 平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于 windows 和 linux 的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。本文仅限于介绍 linux 下的库原创 2016-03-18 22:12:21 · 814 阅读 · 1 评论 -
继承,菱形继承,多态,虚拟继承,多虚拟继承,菱形虚拟继承
#ifndef INHERIT_H_#define INHERIT_H_#include #include using namespace std;//继承和派生//继承与派生类的关系namespace Relation{class Person{public:void fun(){}void show(){cout << _name << endl;}~原创 2016-03-18 22:09:14 · 590 阅读 · 1 评论 -
常见排序算法总结
我们学习过很多排序算法,但是我们又很难将它们记住,当面试的时候问到其中的一个排序算法的时候,或者需要解决某些问题的时候,我们需要选择一些排序算法。如果我们此时不熟悉常见排序的特点,那么我们真的会很难受的,我感觉我就经历过这种事。所以我觉得我有必要重新认识一下常见排序算法并将它们总结一下。好,闲话不扯了,我们开始吧。1.冒泡排序代码:void BubbleSort(int原创 2016-04-20 23:25:30 · 578 阅读 · 0 评论 -
shell脚本学习笔记(语法)
shell脚本学习笔记(语法)原创 2016-04-10 16:10:32 · 2064 阅读 · 0 评论 -
硬链接与软链接
在本篇博客主要想说说Linux文件系统中的硬链接与软链接的问题,这是一个很多人介绍过的问题,那么我为什么还要再说一遍了呢?我个人感觉这个问题不是什么很深奥的问题,我之前了解过,但是没有明白,直到今天才搞清楚,在这里我主要是想分析一下原因。 我之前对Linux系统的文件系统一点概念也没有,当然今天还是没有完全理解Linux文件系统。我是在看文件系统的时候,看到了硬链接两个字的时候,突然想到原创 2016-06-10 17:32:30 · 622 阅读 · 0 评论 -
shell脚本学习笔记 (文本处理器AWK)
既然说到了shell和正则表达式,那么不得不简单的提提AWk工具。AWK是一种优良的文本处理工具,它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一。AWK 提供了极其强大的功能:可以进行样式装入、 控制流、数学运算符、进程控制语句甚至于内置的变量和函数。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。原创 2016-06-06 16:40:48 · 805 阅读 · 0 评论 -
关于volatile关键字
volatile:不稳定的,易变的。他的意思告诉我们他很善变,需要多多注意一下它的举动,所以在使用这个关键字的时候需要注意一下。其实这个关键字用的很少,很多人也不知道他是什么(确实是这样的,在面试的过程中被问到了这个,当时一脸的懵啊) 这个关键字和const类似,都是用来修饰类型的,它所修饰的变量可以被某些编译器未知的因素更改,比如操作系统,硬件,线程等等,一旦使用了volatile关键原创 2016-06-19 14:29:08 · 586 阅读 · 0 评论 -
数组和指针的不同之处
我相信很多初学c语言的人,肯定会以为指针和数组是等价的,而那些学了一段时间的人或许也分不清两者之间的区别吧。那么我有必要和大家千谈一下C语言中数组和指针的不同之处了。由于我已经写过了一篇总结,这里我就不重复了,直接把链接放在这里,大家可以去看看。http://zourun.sinaapp.com/原创 2015-10-02 15:11:15 · 466 阅读 · 0 评论 -
C++如何只在堆上或者栈上生成对象
这个是个面试题,不知道的时候确实会一比较懵;那么具体如何实现呢?栈和堆这两种内存的使用想象大家都了解吧,栈一般是静态建立一个对象的时候会有编译器自动创建,而堆是需要调用new来达到目的的。 首先若是不能调用new,那么就无法在堆上生成对象了,那么...,我们重载一下operator new以及operator delete 置为私有部分,类外就无法调用new来在堆上生成对象了,所以只原创 2016-09-06 13:09:12 · 1529 阅读 · 0 评论 -
github(To prevent you from losing history, non-fast-forward updates were rejected)
[admin@bogon project]$ git pushTo https://admin-zou@github.com/admin-zou/project.git ! [rejected] master -> master (non-fast-forward)error: failed to push some refs to 'https://admin-zou@git原创 2016-04-08 19:50:29 · 2275 阅读 · 0 评论 -
Centos下更新 gcc 版本至 GCC 6.1.0
最近linux的gcc版本更新到gcc 6.1.0 版本了,我查看了一下我的机器上的GCC版本.... ------------- GCC 4.4.7 我去,这也太low了吧,而且我们知道的GCC 4.4.7 是不支持 C++11 的,我的脾气比较暴躁,果断要升级到GCC 6.1.0 版本! 我开始的时候使用了 yum update gcc 命令,可恨的是机器又将gc原创 2016-05-08 16:45:31 · 35206 阅读 · 6 评论 -
模拟实现操作系统内存分配与回收
操作系统的内存分配与回收的,这里主要模拟实现了操作系统的首次适应算法和最佳适应算法来分配内存的,代码已经完成有一段时间了,但是忘记了分享一下,今天想起来了,所以特意写出来和大家分享一下,地址:http://https://github.com/admin-zou/DS/tree/master/systemMemDR原创 2016-04-06 22:23:13 · 9064 阅读 · 0 评论 -
浅谈字节对齐
知识忘记的速度真的是快,总是感觉自己好像什么都没学过,于是开始复习一下知识,今天复习了一下C语言中的字节对齐。现代计算机中,内存空间按照字节划分,理论上可以从任何起始地址访问任意类型的变量。但实际中在访问特定类型变量时经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序一个接一个地存放,这就是对齐。 我对字节对齐的理解是:字节对齐的作用是提高访问效率,不原创 2016-09-03 10:51:29 · 677 阅读 · 0 评论 -
win10使用"诊断启动后无法进入桌面"
问题描述:win10系统在运行某些程序时会出现重启电脑现象,网上教学中有一种解决方法是:使用"Win + R",然后输入msconfig,在"系统设置"界面中,切换到"常规"选项,勾选"诊断启动",然后确定,重启计算机。但是:电脑重启后卡在输入用户密码的界面上,没有输入密码的窗口,无法进入桌面,关机重启等方法都无效。【据说这是win10的一个bug,我看了网上的解决方法(并未解决问题,得重装系原创 2017-05-30 13:22:09 · 49402 阅读 · 19 评论 -
ubuntu下使用pip3.6安装模块总是报ssl module in Python is not available的错误
刚刚安装了python3.6,在使用pip3.6安装模块的时候出现如下错误。[root@www ~]# pip install bottlepip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.Collecting bottleCou原创 2017-07-14 20:56:01 · 20568 阅读 · 8 评论 -
Win10卸载office出现安装包语言不受系统支持
前段时间把系统升级到了win10,觉得还不错,但是我之前的系统安装了一个office2010的软件。刚刚升级的时候还可以用,但是在我准备做一个ppt的时候却发现打开不了,发现这种情况我就决定卸载掉office2010,装一个office2013,但是我用控制面板卸载的时候,它却提示安装包语言不受系统支持,而且什么360的也不能卸载。于是,我在网上搜了一下,网友的解决办法是在系统上安装一个东南亚版的原创 2016-03-18 22:17:44 · 28897 阅读 · 10 评论 -
嵌套重载<< 以及模板特化的使用
我在用c++实现一个链式栈的时候,我想用c++特别的重载方式,实现对栈的一个对象的输出,例如 stack st ; cout代码如下:#pragma once#include#include#includeusing namespace std;templateclass stack;//template//class ListNode;//templ原创 2016-03-18 22:20:24 · 1472 阅读 · 1 评论 -
构造函数的返回值
鲜为人知的C++构造函数原创 2016-04-08 10:24:56 · 2265 阅读 · 0 评论 -
shell脚本学习笔记 (正则表达式)
shell脚本学习笔记(正则表达式)原创 2016-04-12 20:13:39 · 5096 阅读 · 0 评论 -
shell脚本学习笔记 (流编辑器sed)
shell脚本学习笔记(sed)原创 2016-04-13 20:55:59 · 6030 阅读 · 0 评论 -
模拟实现操作系统调度算法
结合自己所学知识(数据结构)以及对操作系统调度算法的理解,模拟实现了一下操作系统的调度算法,主要包括先来先服务和短作业优先调度。原创 2016-04-06 22:01:14 · 6383 阅读 · 0 评论 -
shell脚本学习笔记 (sed的高级用法----模式空间和保持空间)
前段时间在学习shell脚本,上次有提到sed的模式空间和保持空间概念,但是一直没有研究好,这两天研究了一下,所以将它发出来,不是很全面,仅仅供大家参考一下。 保持空间sed在正常情况下,将处理的行读入模式空间,脚本中的“sed command(sed命令)”就一条接着一条进行处理,直到脚本执行完毕。然后该行被输出,模式被清空;接着,在重复执行刚才的动作,文件中的新的一行被读入,直到文原创 2016-04-29 00:04:24 · 8074 阅读 · 1 评论 -
shell脚本学习笔记(符号)
shell脚本的学习笔记原创 2016-04-10 12:23:38 · 1020 阅读 · 0 评论 -
shell脚本学习笔记(shell脚本实现文件的创建)
shell脚本 > /dev/null 2>&1原创 2016-04-10 10:49:50 · 6853 阅读 · 0 评论 -
githup的离线安装包
最近几天我下载了好几次 githup 客户端,下载很慢且不说,每次下载到一半或者快下载完的时候就无法下载,很烦! 在网上下载到一个热心人的离线包,解决了问题。所以我也做一个好心人,给大家分享一下,大家可以去这个网盘地址下载一下。http://pan.baidu.com/s/1nt3tOIP原创 2016-03-18 22:15:00 · 1264 阅读 · 1 评论 -
C++中的重载 覆盖 隐藏的规律
最近在看C++相关内容,以前没搞清的一些东西,现在再去复习一下,有些东西弄懂了以后的感觉特别好。以前我对C++重载,隐藏,覆盖不是很了解,所以我就花了一些时间去看看规则以及结合资料,进行了总结,规律如下:成员函数被重载的特征是:具有相同的作用域(同一个类中)函数名字相同参数类型,顺序或数目不同(包括const参数或非const参数)vortual关键字可有可无原创 2016-04-30 23:41:24 · 454 阅读 · 0 评论 -
布隆过滤器-----时间+空间
最近在研究哈希表,写了闭散列和开散列的代码,哈希表的查找效率确实比较高,但是我发现哈希表的空间效率却有点低,一个好点的哈希表估计能达到50%的空间利用率吧。 我们知道STl中有一种数据结构叫做 bitset 个人觉得叫 bitmap 会更形象一点(这里不去关系这个了),位图是具有很高的空间效率的数据结构,在处理有些大数据的时候能够发挥出很大的作用。 看到这里应该懂我了吧,既原创 2016-05-13 15:25:53 · 1218 阅读 · 0 评论 -
项目:文件压缩与解压(修复bug)
昨天完成的文件压缩与解压小项目基本上是完成了,但是没有经过严格的验证。为了验证其使用性,我今天又做了一些测试,我网上找了一个比较能够验证各种情况的文件,大小大约是 8M左右,还是可以说明问题的,该文件中有一些编码让我的程序暴露出问题了,主要的问题如下: 1.> 首先有些特殊的编码,总共有256个ASCII,所以我们的统计字符的应该unsigned char ,否则有些编码会导致错误。我们平时可原创 2016-05-29 00:43:02 · 679 阅读 · 0 评论 -
Linux下没有 itoa
今天在Linux下写代码的时候发现了一个问题,可以使用 atoi 函数将一个字符串转化为一个整型值。当我反过来转化的时候却发现没有该函数...,不是我记错了,使用itoa函数是可以将整型值转化为字符串的,我之前在windows下使用 VS2013 的时候是有相关函数的,该函数是 _itoa(itoa被_itoa代替了)。 Linux下使用 itoa 的时候提示没有该函数,如图所示:原创 2016-05-29 23:14:28 · 18508 阅读 · 6 评论 -
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.17' not found
刚刚在Linux写完代码编译执行的时候遇到了这个问题,很奇怪的一个问题,无缘无故的动态库怎么会出现问题呢?我想起来了之前我将gcc升级了一下,可能跟这个有关系,我在搜了一下,果然是这个原因。 首先打印一下libstdc++6.0.so输出库的信息 看看,果然没有 GLIBCXX_3.4.17 ,查看了一下libstdc++.so.6 ,它指向的是一个比较老的库,而我们原创 2016-05-30 12:44:54 · 1745 阅读 · 0 评论 -
<< >>
相信学过c语言的人都知道 移位 运算符是怎么一回事吧,关于移位运算符有>两种>> 逻辑右移(适用于unsigned即无符号类型)-----------------它会在在左端补0>> 算术右移(有符号类型)---------------------------在左端补上最高有效位数字学过计算机组成原理的人应该知道,计算机执行乘法和除法其实是很复杂的一个原创 2016-03-18 22:30:10 · 527 阅读 · 1 评论 -
VMware 使用 NAT 模式联网问题
之前电脑上一直使用桥接的方式上网,但是这样一直有些麻烦,麻烦就是每次使用 xshell 时得重新输入ip地址,这样确实麻烦,所以我准备换一种模式,使用NAT模式上网,但是问题来了。 我看看了看我的VMware的虚拟网络编辑器里面只有,VMnet0和Vmnet8两个,没有VMnet0。有没有先不说吧,主要是使用VMnet8模式的时候centos虚拟机无法获取ip地址,这下可麻烦了。于是我开原创 2016-05-31 20:10:56 · 644 阅读 · 0 评论 -
C语言使用const定义数组时的错误原因
在c语言编程中我们这样定义数组时编译器回报一个错误const int n=5;int ar[n];这确实是一个很棘手的问题,它会迫使我们用动态开辟空间的方法来定义数组,但是我们使用动态开辟的方法比较复杂,容易出现错误。所以我们需要解决这个问题。为什么会出现上面原因呢?(在c++中是可以的)主要原因是:1.这个问题讨论的是“常量”与“只读变量”的区别。常量肯定原创 2016-03-18 22:49:42 · 7118 阅读 · 2 评论 -
Linux下Eclipse的汉化与恢复
首先说明一下,建议大家不要使用汉化的Eclipse,汉化的Eclipse很不和谐,而且嗨比较容易出问题。虽然全是英文的有些人看着很难受,但是当你使用一段时间之后你就回适应的。但是汉化的方法还是值得学习的(不建议使用汉化) 首先,可以搜集资料,得到三种汉化的方法。 1.下载汉化包,然后覆盖eclipse的features和plugins目录 2.下载汉化包然后原创 2016-12-20 15:36:09 · 8904 阅读 · 0 评论