C++代码阅读笔记一

1.namespace 命令空间的用法

应用场景:重名变量,重复函数(不同的库)
使用:
(1): 可以嵌套
(2):默认命名空间,全局作用域
(3):不同命名空间的变量,可以重复
语法:

namespace Name
			{
				namespace Internal
				{
					/*....*/
				}
				  /*...*/
			}

使用:
使用整个命名空间:using namespace name;
使用命名空间的变量: using name::variable
使用默认命名空间的变量: ::variable
2: c++函数后边跟:冒号
构造函数后加冒号是初始化表达式:
有四种情况下应该使用初始化表达式来初始化成员:
(1):初始化const成员
(2):初始化引用成员
(3):当调用基类的构造函数,而它拥有一组参数时

(4):当调用成员类的构造函数,而它拥有一组参数时。

3:system(“PAUSE”)
system是C函数库stdlib.h、process.h中的一个函数。具体解释如下:

int system(char *command):将MSDOS命令command传递给DOS执行。

而pause是DOS下的一个命令。功能是:暂停批处理的执行,显示一个中文信息:“请按任意键继续. . .”,或者英文信息:“Press any key to continue . . .”

4.c++中的.hpp文件
使用:hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。
而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,
采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,因此非常适合用来编写公用的开源库
(1)不可包含全局对象和全局函数
由于hpp本质上是作为.h被调用者include,所以当hpp文件中存在全局对象或者全局函数,而该hpp被多个调用者include时,将在链接时导致符号重定义错误。要避免这种情况,需要去除全局对象,将全局函数封装为类的静态方法。
(2)类之间不可循环调用
(3) 不可使用静态成员
5 求均值

double sum = std::accumulate(std::begin(resultSet), std::end(resultSet), 0.0);  
double mean =  sum / resultSet.size(); //均值  

std::accumulate

double accum = 0.0; std::for_each (std::begin(resultSet), std::end(resultSet), [&](const double d) { accum += (d-mean)*(d-mean); }); 
double stdev = sqrt(accum/(resultSet.size()-1)); //方差  

[std::for_each](http://www.cplusplus.com/reference/algorithm/for_each/)
std::vector简介及其使用

6 将vector 转换为数组

memcpy(arry_laser_vaild, &Ones_laser[0], Ones_laser.size()*sizeof(float));
//arry_laser_vaild指的内存地址的起始位置开始拷贝Ones_laser.size()*sizeof(float))个字节到目标&Ones_laser[0]所指的内存地址的起始位置中
//arry_laser_vaild要复制的数组
//&Ones_laser[0],要被复制位置的起始位置指针
//Ones_laser.size()*sizeof(float)),要被复制数据的字节大小

7 c++ 中的<>作用
参考链接
库里面的函数模板,在编译过程时把数据通用类型实例化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
迅捷是一个功能强大的C/C++代码分析软件。可以处理数百万行的源程序代码。支持标准及K&R风格的C/C++。对每一个源代码工程,通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的源文件、所有的头文件、词汇索引、文件包含关系、宏定义、数据结构和函数定义、分文件夹的定义目录、构造层次、函数调用关系、诊断性输出等。仅须按一键就可以非常方便地扩展各种类型的定义和调用关系。所有这些结合起来帮助用户快速地阅读、理解、研究和维护大规模的源代码工程。 包含各种友好的用户界面效果,如对窗口的标签化排列、任意分隔、自动隐藏、浮动、拖拉等。可以使用户快速地找到每一个功能性窗口并重新以各种格局加以任意组合。 包含有一个多功能的文本及十六进制编辑器。便利性特色包括:句法着色、自动完成词汇、对整个内容的自动格式化。可以动态地显示一个文件中的标示词。可以设置多个文件定义来指定对文件的处理、颜色及样式等。可以较快地定位当前或以前打开的某个文件。 包含一个可以同时打开多个工程的工作区,有许多命令可以处理某一个或所有的工程。有强大的功能可以同时在多个文件、文件夹、工程中进行后台查找和替换。 包含一个强大的比较模块,可以进行文件间或文件夹间的后台对比。提供有许多命令来显示目标之间的差别。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值