- 博客(15)
- 资源 (9)
- 问答 (41)
- 收藏
- 关注
原创 C++ 引用计数技术简介(1)
1.引用计数的作用C++引用计数是C++为弥补没有垃圾回收机制而提出的内存管理的一个方法和技巧,它允许多个拥有共同值的对象共享同一个对象实体。C++的引用计数作为内存管理的方法和技术手段主要有一下两个作用。 (1)简化了堆对象(heap objects)的管理。 一个对象被从堆中分配出来之后,需要明确知道是谁拥有了这个对象,因为只有拥有这个对象的所有者才能够销毁它。但在实际使用过程中, 这个对象可
2016-01-31 11:21:26 3971 1
原创 C++ 类使用规范建议
类是C++中基本的代码单元,自然被广泛使用。本节列举了在写一个类时要做什么、不要做什么。1. 构造函数(Constructor)的职责构造函数中只进行那些没有实际意义的(trivial,译者注:简单初始化对于程序执行没有实际的逻辑意义,因为成员变量的“有意义”的值大多不在构造函数中确定)初始化,可能的话,使用Init()方法集中初始化为有意义的(non-trivial)数据。定义:在构造函数中执行初
2016-01-27 17:30:03 2043
原创 使用互斥量封装的类
使用互斥量封装的一个简单的互斥量类,用于多线程项目中线程间同步。源码如下:////// \brief 互斥锁的封装///class Mutex {public: explicit Mutex() { } ~Mutex() { pthread_mutex_destroy(&m_Mutex); } void init() { in
2016-01-26 23:59:05 1417
原创 C++ 作用域使用规范建议
1.名字空间(Namespaces)C++在C的基础上引入了名字空间机制,使C中作用域的级别从原有的文件域(全局作用域)和局部域(函数作用域和代码块作用域)中间增加了名字空间域和类域。名字空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突。优点:命名空间提供了(可嵌套)命名轴线(name axis,注:将命名分割在丌同命名空间内),当然,类也提供了(可嵌套)的命名轴线(注
2016-01-26 14:21:10 2058
原创 C++函数使用规范建议
1.内联函数的使用规范定义:内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。特点:是编译器可能会将其内联展开,无需按通常的函数调用机制调用内联函数。优点:当函数体比轳小的时候,内联该函数可以令目标代码更加高效。缺点:滥用内联将导致程序变慢,内联有可能使目标代码量增加或减,返取决于被内联的函数的大小。。内联较短小的存取函数通常会减少代码量,但内联一个较大的函数(注:如果编
2016-01-25 00:27:03 2228
原创 C++ 头文件使用规范建议
1.背景一个良好的编程规范和风格是一名程序猿成熟的标志。规范的编码可以减少代码冗余,降低出错概率,便于代码管理和代码交流等等,事实上,其作用远不止这些,我们要牢记编码规范在心中啊。Google的项目大多使用C++开収。每一个C++程序员也都知道,C++具有徆多强大的诧言特性,但返种强大丌可避免的导致它的复杂,而复杂性会使得代码更容易出现bug、难亍阅诺和维护。本指南的目的是通过详绅阐述如何迕行C++
2016-01-23 11:20:58 4250 2
原创 Linux基础知识点
1. rw-rw-r—表示的权限的意思然后又分了三个类别的权限,分别是: 文件所属主、文件所属组和其他用户。2. 索引节点(inode)理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block
2016-01-21 22:15:02 2719
原创 定点数的加减法
数值运算的核心是指加、减、乘、除四则算术。由于计算机中的数有定点和浮点两种表示形式,因此相应有定点数的运算和浮点数的运算。本文将介绍计算机中定点数的加减法运算过程。注意,理解本文的前提是要清楚知道顶点数的源码、反码和补码的含义,以及定点数在计算机中的表示形式。1.补码加法由于计算机中定点数均以补码的方式表示和存储(个人观点,有待证明),采用补码表示法进行加减运算比源码方便多了,因为不论是正还是负,机
2016-01-18 11:03:37 15382 8
原创 C/C++代码调试:快速定位内存的申请和释放的位置
1.问题如果大型项目中出现类似于*** glibc detected *** logcacheinit: double free or corruption (fasttop): 0x00000000017db7f0 ***的错误。更糟糕的是项目既是多线程又是分布式运行的话,调试定位double free实在让人头痛。这个信心内核在程序崩溃的时候,只给出了被释放两次的内存地址,却没有给出程序出现两次
2016-01-14 15:51:56 4327
原创 一文读懂 IEEE754 浮点数的表示方法
浮点数(Floating-point Number)是对实数的一种近似表示,由一个有效数字(即尾数)加上幂数来表示,通常是乘以某个基数的整数次幂得到。以这种表示法表示的数值,称为浮点数。
2016-01-09 17:08:19 114067 78
原创 计算机基础知识
1. 常见希腊字母 大写 小写 英文名称 Α α Alpha Ν ν Nu Β β Beta Ξ ξ Xi Γ γ Gamma Ο ο Omicron Δ δ Delta Π π Pi Ε ε Epsilon Ρ ρ Rho Ζ ζ Zeta Σ σ
2016-01-06 20:15:11 1793
原创 CUDA Study Notes
1. 归约(Reduction)归约是使用解决其它问题的”黑盒”来解决另一个问题.2. Tesla是什么CUDA架构用作GPU通用计算。3. SSE指令集SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令集是Intel在Pentium III处理器中率先推出的。其中包含70条指令。4. 3DNow!指令集(据称是“3D No Waiting!”的缩写)是由AMD开发
2016-01-06 18:09:06 1907
原创 C++学习知识点
1. OOP面向对象程序设计的多态的理解答:多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。 C++中,实现多态有以下方法:虚函数,抽象类,重载,覆盖,模板。2.类的特征答:封装、继承和多态。3. C++与C#的区别(1)C++中类的申明时,不能给数据成员赋值,通常使用构造函数来完成。而C#可以。还有C++种成员函数
2016-01-06 17:35:24 1825
原创 Linux下编程获取本地IP地址的常见方法
在进行Linux网络编程时,经常用到本机IP地址。本文罗列一下常见方法,以备不时之需。获取本机IP地址,是一个相当灵活的操作,原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的。比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡设置别名,可以重命名...
2016-01-05 14:15:03 20762 1
原创 awk(1) command
AWK 是文本处理语言,是一个强大的文本分析工具,是 Unix/Linux 环境中功能强大的数据处理引擎之一。数据可以来自标准输入(stdin)、一个或多个文件或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是 Unix/Linux 下一个强大的编程工具。AWK 有很多内建的功能,比如数组、函数等,这是它和 C 语言的相同之处,灵活性是 AWK 最大的优势。简单来说 AWK 就是把文件逐行的读入,以空格和 Tab 为默认分隔符将每行切片,切开的部分再进行各种分析处理。
2016-01-01 17:08:43 3588 1
tinyxml2+示例代码+介绍文档
2015-09-26
HTML 如何设置图片宽高分别为原宽高的不同比例?
2020-08-22
Google C++编程风格指南中6.10节流中不支持字符串操作符重新排序 什么意思
2018-08-05
C++模板元编程和编写模板有什么区别?
2018-06-17
g++ -S将源码编译成汇编代码,使用的是哪个工具?
2018-06-11
从长度为n的数组中找出同时满足下面两个条件的所有元素,时间复杂度为O(n)。
2018-05-28
为什么C++局部数组变量地址间隔是16字节的倍数?
2018-05-17
缓冲溢出,为什么不报错?
2018-05-16
RLF、HRLF控制字符到底是什么
2018-05-10
printf关于浮点数的四舍五入的奇怪问题?
2018-05-09
stringstream的输入与输出的用法
2018-03-19
使用JS如何获取剪贴板内容
2018-03-06
Linux命名管道为什么叫FIFO?
2018-02-07
Linux下printf与wprintf不能同时使用?
2018-01-15
C标准库函数setvbuf的名称全称
2018-01-15
mysql count distinct 加条件
2017-06-15
awk如何获取除最后一行的所有行?
2017-05-19
rz命令如何上传文件夹
2017-05-07
CSS浮动为什么不会遮盖同级元素
2015-09-17
Linux下系统调用execl会等待一段时间才执行指定的可执行程序?
2015-09-11
为什么 Go range slice 时通过下标和值拷贝的性能是一样的?
2022-03-17
反向代理的上游服务指的是什么?
2021-03-12
Golang 接口类型可以有数据成员吗
2020-12-02
GoLand 如何自动批量换行
2020-10-07
Golang 如何进行标准错误输出
2019-12-24
git branch -dr origin/<branchname> 无法删除远端分支
2019-09-16
golang main包可以被import吗
2019-06-11
golang小数默认是float32还是float64?
2019-05-28
golang const 可以修饰函数形参吗
2019-05-28
ldconfig命令全称是什么呢?
2019-04-02
golang的struc成员后跟字符串有什么作用?
2019-03-15
Linux中 链接器 ld 命令的全称是什么英文单词?
2019-03-12
ssh命令默认端口如何查看
2019-02-15
ssh客户端为什么不指定端口也可以登录成功
2019-02-15
C/C++的预处理文件的后缀为什么约定为.i
2019-01-24
go为什么不能获取字符串某个字符地址?
2019-01-13
date命令将时间戳转为可读时间为什么需要加@符号
2018-12-06
GNU C++定义对象时对象名称被括号包围且前面有个下划线是什么意思
2018-10-09
git merge可以操作远端分支吗?
2018-08-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人