关闭

ubuntu add/del user

 ubuntu:~# sudo passwd root sudo: 无法解析主机:ubuntu 输入新的 UNIX 密码: 重新输入新的 UNIX 密码: passwd:已成功更新密码 GJ@ubuntu:~# su - root root@ubuntu:~# /////////////////////////////// sudo adduser xxx 这样的命令会在...
阅读(30) 评论(0)

boost::variant and boost::apply_visitor

 转自:http://www.jb51.net/article/95814.htm Boost.Variant Variant库包含一个不同于union的泛型类,用于在存储和操作来自于不同类型的对象。这个库的一个特点是支持类型安全的访问,减少了不同数据类型的类型转换代码的共同问题。 Variant 库如何改进你的程序?      •对用户指定的多种类型的进行类型安全的存储和取回 ...
阅读(36) 评论(0)

boost::optional详解

 optional:  optional库使用"容器"语义,包装了"可能产生无效值"的对象,实现了"未初始化"的概念. #include using namespace boost; "无意义"的值:  函数并不总能返回有效的返回值,很多时候函数可能返回"无意义"的值,这不意味着函数执行失败,而是表明函数正确执行了,但结果却不是有用的值。  表示返回值无意义最常用的做法是增加一...
阅读(89) 评论(0)

C++ 深入理解 虚继承、多重继承和直接继承

 尊重原创:http://blog.csdn.net/u013630349/article/details/47057929 【摘要】 本文从5段代码实例出发,通过类中类的普通继承,类的虚继承,类的多重继承,多个虚函数类的普通继承、虚继承与多重继承,几个交叉概念,详细的阐释了继承、虚函数与虚继承的基本概念,深入剖析了继承于虚继承的区别于联系。 【Exp.001-虚继承】 #i...
阅读(55) 评论(0)

*p++和(*p)++区别

现在写代码比较少,*p++和(*p)++有些混淆,记录下以便以后用到: *p++等价于*(p++):先取值再p后移 (*p)++先取值然后对取到的值再加1 int arr[10,20,30]; int *p = arr; int x = *p++;//x = 10; 此时p移到&arr[1]了,*p就等于20;...
阅读(45) 评论(0)

c++14

转自: https://zh.wikipedia.org/wiki/C%2B%2B14 C++14是C++的现行标准的非正式名称,正式名称为"International Standard ISO/IEC 14882:2014(E) Programming Language C++"。c++14旨在作为C++11的一个小扩展,主要提供漏洞修复和小的改进。C++14标准的委员会草案...
阅读(47) 评论(0)

linux系统中errno对应的含义

errno 在 中定义,错误 Exx 的宏定义在 /usr/include/asm-generic 文件夹下面的  errno-base.h 和 errno.h,分别定义了 1-34 、35-132 的错误定义。 strerror() 函数依据 errno 值返回错误描述字符串,下面程序打印对照表: [cpp] view plain copy #include   #i...
阅读(73) 评论(0)

C++ 虚函数表解析

对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一个地...
阅读(105) 评论(0)

C++中的new/delete与operator new/operator delete

new operator/delete operator就是new和delete操作符,而operator new/operator delete是函数。 new operator (1)调用operator new分配足够的空间,并调用相关对象的构造函数 (2)不可以被重载 operator new (1)只分配所要求的空间,不调用相关对象的构造函数。当无法满足所要求分配的空间时,则 ...
阅读(47) 评论(0)

简单的几招,再没人能蹭你家wifi

. 用手机也可以操作完成; 招数01 修改路由器密码 首要的第一步,当然就是要修改路由器登录密码了,不然后面做再多也是于事无补的。因为如果你使用路由器初始的admin账号密码,别人很容易就猜到,就能登录进去修改你路由器的任何设置了,所以,毫不犹豫要先把路由器账号密码改了。 1. 在浏览器中(不管手机或是电脑上的浏览器都可以)输入:192.168.1.1或192.168.0.1。如...
阅读(109) 评论(0)

libevent之reactor

转自http://www.cnblogs.com/secondtonone1/p/5535722.html 最近自学libevent事件驱动库,参考的资料为libevent2.2版本以及张亮提供的《Libevent源码深度剖析》, 参考资料: http://blog.csdn.net/sparkliang/article/details/4957667 libevent好处之类的...
阅读(123) 评论(0)

IO设计模式:Reactor和Proactor对比

转自http://www.cnblogs.com/me115/p/4452801.html 内容目录: 反应器Reactor主动器Proactor对比两者的区别参考 IO设计模式:Reactor和Proactor对比 平时接触的开源产品如Redis、ACE,事件模型都使用的Reactor模式;而同样做事件处理的Proactor,由于操作系统的原因,相关的开源...
阅读(95) 评论(0)

strategy和template模式区别

1、strategy统一的接口,实现的算法不同,但结果是一样的,通过组合(委托)的方式,将抽象接口的具体实现委托给组合对象实现; 2.template通过继承的方式将逻辑(算法)框架(不变行为)放在抽象基类中(去除子类中的代码重复),子类中实现特定的细节。但是有一个缺点就是其他类不能复用该子类。而strategy通过组合方式可以复用;...
阅读(81) 评论(1)

利用backtrace和backtrace_symbols函数打印调用栈信息

通过backtrace()函数可以获得当前的程序堆栈地址. 提供一个指针数组, backtrace()函数会把调用堆栈的地址填到里面. #include int backtrace(void **buffer, int size); 为了跟踪动态库, 需要给gcc添加-rdynamic参数. 另外, 为了看到函数名, 行号等调试信息, 还要添加-g参数. -rdynamic参数的...
阅读(81) 评论(0)

超过 130 个你需要了解的 vim 命令

从 1970 年开始,vi 和 vim 就成为了程序员最喜爱的文本编辑器之一。5年前,我写了一个问自己名为 “每个程序员都应该知道的 100 个 vim 命令” 这次算是之前那篇文章的改进版,希望你会喜欢。 基础 :e filename Open filename for edition :w Save file :q Exit Vim :q! ...
阅读(66) 评论(0)
146条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:130089次
    • 积分:1339
    • 等级:
    • 排名:千里之外
    • 原创:51篇
    • 转载:95篇
    • 译文:0篇
    • 评论:2条
    最新评论