Go程序是通过package来组织的(与python的库类似)只有package名称为main的包可以包涵main函数(同时main函数也是一个程序的入口)一个可执行程序有且仅有一个main包通过import关键字来引入其他非main包通过const关键字来进行常量的定义通过在函数体外部使用var关键字来进行全..
分类:
其他好文 时间:
2016-09-06 23:33:39
阅读次数:
140
一、内存对齐(一)、为什么会有内存对齐?1、为了提高程序的性能,数据结构(尤其是栈)应该尽可能的在自然边界上对齐。原因是为了访问未对齐的内存,处理器需要进行两次访问,而访问对齐的内存,只需要一次就够了。这种方式称作“以空间换时间”在很多对时间复杂度有要求问题..
分类:
其他好文 时间:
2016-09-06 23:33:05
阅读次数:
239
1.官方软件仓库的建立1.1.需要一个与本机匹配的安装镜像例如:rhel-server-7.0-x86_64-dvd.iso,这个文件从官方网站下载得到1.2挂载,让系统能够读取rhel-server-7.0-x86_64-dvd.iso中的内容1.2.1配置文件挂载vim/etc/fstab
/xxx/rhel-server-7.0-x86_64-dvd.iso/xxxiso9660ro,r..
分类:
其他好文 时间:
2016-09-06 23:32:55
阅读次数:
352
最近发现公司服务器搭建的网站访问缓慢,服务器输入命令也反应慢,处理步骤如下:1、通过top命令查看服务器CPU、内存、IO等使用情况发现CPU基本在80%以上;内存还好,有富余;CPU平均加载率LoadAverage也是达到40左右2、通过vmstat、iostat参看相关参数,确认是CPU占用很高,CP..
分类:
其他好文 时间:
2016-09-06 23:34:06
阅读次数:
350
一、什么是继承和派生封装、继承、多态是C++的三个重要的特性。在面向对象的技术中强调软件的可重用性,而继承机制就是用来解决软件的重用问题。在C++中,所谓“继承”就是在一个已经存在的类的基础上建立一个新的类。已经存在的类成为基类或父类,新建立的类称为派生类或子类..
分类:
其他好文 时间:
2016-09-06 23:32:08
阅读次数:
250
一、浅拷贝和深拷贝所谓浅拷贝,就是由默认的拷贝构造函数所实现的对数据成员逐一赋值。若类中含有指针类型的数据,这种方式只是简单的把指针的指向赋值给新成员,但并没有给新成员分配内存,因此这种方式必然会导致错误。为了解决浅拷贝出现的错误,必须显示的定义一个拷贝构..
分类:
其他好文 时间:
2016-09-06 23:33:30
阅读次数:
195
String类的简单实现:1、在拷贝构造函数和赋值运算符重载这两个函数中有浅拷贝和深拷贝的问题2、要对输入输出函数重载3、赋值运算符重载有两种方式。注意在采用交换实现的时候函数的参数只能是临时变量classString
{
friendostream&operator<<(ostream&os,Strin..
分类:
其他好文 时间:
2016-09-06 23:32:13
阅读次数:
174
CopyOnWrite(COW):写时拷贝技术一、什么是写时拷贝技术:写时拷贝技术可以理解为“写的时候才去分配空间”,这实际上是一种拖延战术。举个栗子:二、写时拷贝技术原理:写时拷贝技术是通过"引用计数"实现的,在分配空间的时候多分配4个字节,用来记录有多少个指针指向块空间,..
分类:
其他好文 时间:
2016-09-06 23:32:37
阅读次数:
329
在使用new的时候做了两件事:1、调用operatornew分配空间2、调用构造函数初始化对象在使用delete的时候也做了两件事:1、调用析构函数清理对象2、调用operatordelete函数释放空间在使用new[N]的时候也做了两件事:1、调用operatornew分配空间2、调用N次构造函数初始化N个对象在..
分类:
其他好文 时间:
2016-09-06 23:31:46
阅读次数:
137
很多人都误以为智能指针是一个指针,其实不然,智能指针不是指针,智能指针是一个模板,由智能指针实例化出来的的对象具有和常规指针相似的行为,但是他能够自动的释放所指向的对象,所以我们称之为智能指针。如果我们用普通指针来创建一个指向某个对象的指针,那么我们最后必..
分类:
其他好文 时间:
2016-09-06 23:33:23
阅读次数:
213
shared_ptr虽然方便,但是它有着一个致命的缺陷就是循环引用问题,因为shared_ptr本身并没有能力解决这个问题,所以我们又引入了弱指针weak_ptr来辅助shared_ptr解决这个问题。那么循环引用又是什么场景?举个栗子:假设现在我们要创建一个双向整形链表,但是这个链表的指针域..
分类:
其他好文 时间:
2016-09-06 23:30:48
阅读次数:
174
一.网卡别名1.对虚拟主机有用2.可以将多个IP地址绑定在一个NTC上eth0:1eth0:2eth0:33.ifconfig命令ifconfigeth0:0192.168.1.100/24up临时修改网卡的IP地址和子网掩码,重启网络服务后失效4.ip命令ipaddradd172.16.1.2/16deveth02.配置别名时,会有和NetworkManager服务不兼容情况..
分类:
其他好文 时间:
2016-09-06 23:33:11
阅读次数:
1862
//利用容器适配器实现栈和队列
#pragmaonce
#include<iostream>
#include<string>
#include<cassert>
usingnamespacestd;
template<typenameT>
structNode
{
public:
Node(constT&d)
:_next(NULL)
,_prev(NULL)
,_data(d){}
T_data;
N..
分类:
其他好文 时间:
2016-09-06 23:31:54
阅读次数:
174
在C++中我们可以通过typeid来获取一个类型的名称(内置类型和自定义类型都可以),但是我们不能用这种方式获取来的名称做变量的声明。那么在C++中怎样识别对象的类型呢??我们可以通过类型萃取的方式来区分内置类型和自定义类型。例如:我们在Seqlist中要用到类型萃取,因为内置..
分类:
其他好文 时间:
2016-09-06 23:32:24
阅读次数:
141
C++中的强制类型转换:static_cast、reinterpret_cast、const_cast、dynamic_cast.
static_cast:用于非多态类型之间的转换(静态转换),任何标准类型之间都可以用它,但它不能用于不相关类型之间的转换。static_cast只能用于相关类型之间的转换。
例:
inti=2;
doubled=static..
分类:
其他好文 时间:
2016-09-06 23:32:08
阅读次数:
171
一、为什么使用命名空间一个大型的工程往往是由若干个人独立完成的,不同的人分别完成不同的部分,最后再组合成一个完整的程序。由于各个头文件是由不同的人设计的,有可能在不同的头文件中用了相同的名字来命名所定义的类或函数,这样在程序中就会出现名字冲突。不仅如此,有..
分类:
其他好文 时间:
2016-09-06 23:31:16
阅读次数:
138