07 2017 档案

摘要:for (auto i : b) Fuck(i); 是 for (auto bitch = std::begin(b); bitch != std::end(b); bitch++) { auto temp = *bitch; Fuck(temp); } 的缩写 (来自知乎) 阅读全文
posted @ 2017-07-30 11:09 chenhuan001 阅读(351) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2017-07-27 11:49 chenhuan001 编辑
摘要:【转自 here】 在编写C++程序的时候,偶尔需要用到前置声明(Forward declaration)。下面的程序中,带注释的那行就是类B的前置说明。这是必须的,因为类A中用到了类B,而类B的声明出现在类A的后面。如果没有类B的前置说明,下面的程序将不同通过编译,编译器将会给出类似“缺少类型说明 阅读全文
posted @ 2017-07-17 21:14 chenhuan001 阅读(214) 评论(0) 推荐(0) 编辑
摘要:定义: 当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。 用法: 在A类中加入: 下面这个程序说明了友元类与友元派生类的权限。 阅读全文
posted @ 2017-07-17 19:56 chenhuan001 阅读(2290) 评论(0) 推荐(0) 编辑
摘要:容器有太多需要清楚细节的地方,同时也有太多值得学习的地方。下文作为学习、工作中用到vector的总结。 1. 赋值运算=的实现原理 在使用赋值操作时,如果不清楚内部是怎么实现,那么用起来会畏手畏脚。 先来看下stl_vector.h中对于=的重载函数。 从上述代码发现,上述代码处理了容量问题,却没有 阅读全文
posted @ 2017-07-16 19:29 chenhuan001 阅读(324) 评论(0) 推荐(0) 编辑
摘要:这就是一个纯虚析构函数,这种定义是允许的。 一般纯虚函数都不允许有实体,但是因为析构一个类的过程中会把所有的父类全析构了,所以每个类必有一个析构函数。 所以。纯虚析构函数需要提供函数的实现,而一般纯虚函数不能有实现 阅读全文
posted @ 2017-07-16 18:28 chenhuan001 阅读(1333) 评论(0) 推荐(0) 编辑
摘要:form here 用gdb 查看汇编代码, 采用disassemble 和 x 命令。 nexti, stepi 可以单步指令执行 如下例: 源代码: [root@hjj ~]# cat 1.c#include <stdio.h>int main(int argc, char *argv[]){ 阅读全文
posted @ 2017-07-16 11:47 chenhuan001 阅读(1058) 评论(0) 推荐(0) 编辑
摘要:做项目的过程中,碰到一个问题。 问题可以抽象为下面的问题: 普通人吃饭拿筷子,小孩吃饭拿勺子。 输出结果: 当然这也符合我们的预期。 因为people不是虚函数,所以上述程序调用的是people中的eat方法,这就涉及到一个之前我一直模糊的概念,在一个类方法中调用虚方法,是如何调用的。 这又涉及到之 阅读全文
posted @ 2017-07-16 11:43 chenhuan001 阅读(1483) 评论(0) 推荐(0) 编辑
摘要:将当前目录下的所有.c、.h文件中的str1字符串替换为str2字符串。 参数解释: sed:-i 表示操作的是文件,``括起来的grep命令,表示将grep命令的的结果作为操作文件s/"str1"/"str2"/表示查找str1并替换为str2,后面跟g表示一行中有多个str1的时候,都替换,而不 阅读全文
posted @ 2017-07-12 16:35 chenhuan001 阅读(490) 评论(0) 推荐(0) 编辑
摘要::[range]s/from/to/[flags] range:搜索范围,如果没有指定范围,则作用于但前行。 :1,10s/from/to/ 表示在第1到第10行(包含第1,第10行)之间搜索替换; :10s/from/to/ 表示只在第10行搜索替换; :%s/from/to/ 表示在所有行中搜索 阅读全文
posted @ 2017-07-10 20:57 chenhuan001 阅读(4646) 评论(0) 推荐(0) 编辑
摘要:上述命令不一定有用。 大概了解下文件编码,和vim里面的编码情况。 1 字符编码基础知识 字符编码是计算机技术中最基本和最重要的知识之一。如果缺乏相关知识,请自行恶补之。这里仅做最简要的说明。 1.1 字符编码概述 所谓的字符编码,就是对人类发明的每一个文字进行数字化表示。最经典的ASCII编码就 阅读全文
posted @ 2017-07-10 10:27 chenhuan001 阅读(634) 评论(0) 推荐(0) 编辑
摘要:一、使用${} 1、${var##*/}该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边的内容。使用例子及结果如下: 从运行结果可以看到,使用该命令,可以提取出我们需要的文件名file.txt。 若使用时在shell程序文件 阅读全文
posted @ 2017-07-08 01:14 chenhuan001 阅读(2285) 评论(0) 推荐(0) 编辑
摘要:https://chrome.google.com/webstore/detail/set-character-encoding/bpojelgakakmcfmjfilgdlmhefphglae set character encoding 阅读全文
posted @ 2017-07-06 18:22 chenhuan001 阅读(1547) 评论(0) 推荐(0) 编辑
摘要:c++程序运行的入口是::main 如果把main放到某个命名空间中,则系统就无法找到入口。 所以就有了为了测试功能的tools和test,其中没有命名空间。 阅读全文
posted @ 2017-07-06 09:39 chenhuan001 阅读(215) 评论(0) 推荐(0) 编辑
摘要:C++ 多线程 C++ 本篇博客主要介绍C++ 的多线程机制。 多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,两种类型的多任务处理:基于进程和基于线程。 基于进程的多任务处理是程序的并发执行。 线程的多任务处理是同一程序的片段的并发执行。 多线程程序 阅读全文
posted @ 2017-07-02 12:09 chenhuan001 阅读(404) 评论(0) 推荐(0) 编辑
摘要:strlen源码剖析 学习高效编程的有效途径之一就是阅读高手写的源代码,CRT(C/C++ Runtime Library)作为底层的函数库,实现必然高效。恰好手中就有glibc和VC的CRT源代码,于是挑了一个相对简单的函数strlen研究了一下,并对各种实现作了简单的效率测试。strlen的函数 阅读全文
posted @ 2017-07-02 10:47 chenhuan001 阅读(409) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示