02 2021 档案
摘要:Linux系统下,不小心按了ctrl+z命令后,退出了当前进程的执行界面,程序没有结束,只是被挂起了。通过ps命令可以查看进程信息,这里不做详细介绍,可通过jobs命令查看被挂起的进程号 #jobs ,通过fg命令可以恢复进程到前台执行、bg命令恢复进程到后台执行。 示例: /mnt/mpp/sam
阅读全文
摘要:下面随笔给出块设备文件与文件系统之间的关系解析。 Linux操作系统秉承“一切皆文件”的设计思想,将所有的设备页看作文件来进行处理。目前的Linux版本中,当内核发现一个块设备时,用户空间会利用udev这一数据结构以及相关的操作来为块设备创建其所需的块设备文件。 关于块设备文件,可以从两方面来进行理
阅读全文
摘要:下面随笔给出c++ string类使用及用string类解决整行字符串输入。 string类 使用字符串类string表示字符串 string实际上是对字符数组操作的封装 string类常用的构造函数 string(); //默认构造函数,建立一个长度为0的串 例: string s1; strin
阅读全文
摘要:下面随笔给出c++移动构造。 在现实中有很多这样的例子,我们将钱从一个账号转移到另一个账号,将手机SIM卡转移到另一台手机,将文件从一个位置剪切到另一个位置……移动构造可以减少不必要的复制,带来性能上的提升。 C++11标准中提供了一种新的构造方法——移动构造。 C++11之前,如果要将源对象的状态
阅读全文
摘要:下面随笔给出c++中深层复制(浅层复制运行错误)成功运行 sample。 浅层复制与深层复制 浅层复制 实现对象间数据元素的一一对应复制。 深层复制 当被复制的对象数据成员是指针类型时,不是复制该指针成员本身,而是将指针所指对象进行复制。 浅层复制-系统默认复制构造函数(运行错误) 1 //例 对象
阅读全文
摘要:下面随笔讲解c++ vector对象。 vector对象 为什么需要vector? 封装任何类型的动态数组,自动创建和删除。 数组下标越界检查。 封装的如ArrayOfPoints也提供了类似功能,但只适用于一种类型的数组。 vector对象的定义 vector<元素类型> 数组对象名(数组长度);
阅读全文
摘要:下面随笔是关于c++动态内存分配。 动态申请内存操作符 new new 类型名T(初始化参数列表) 功能:在程序执行期间,申请用于存放T类型对象的内存空间,并依初值列表赋以初值。 结果值:成功:T类型的指针,指向新分配的内存;失败:抛出异常。 释放内存操作符delete delete 指针p 功能:
阅读全文
摘要:下面随笔说明函数指针用法。 函数指针的定义: 定义形式: 存储类型 数据类型 (*函数指针名)() 含义: 函数指针指向的是程序代码存储区 函数指针的典型用途 实现函数回调 通过函数指针调用的函数 例如将函数的指针作为参数传递给一个函数,使得在处理相似事件的时候可以灵活的使用不同的方法。 调用者不关
阅读全文
摘要:下面随笔将讲述c++指针类型的函数。 原创链接:https://www.cnblogs.com/iFrank/p/14444379.html 指针类型的函数 若函数的返回值是指针,该函数就是指针类型的函数。 指针函数的定义形式 存储类型 数据类型 *函数名() { //函数体语句 } 1 错误的例子
阅读全文
摘要:下面随笔是关于指针数组说明及与二维数组的最大区别。 指针数组 数组的元素是指针型 例 利用指针数组存放矩阵 1 #include 2 using namespace std; 3 int main() { 4 int line1[] = { 1, 0, 0 }; //矩阵的第一行 5 int lin
阅读全文
摘要:下面随笔是关于指针的算术运算 、关系运算。 指针类型的算术运算 指针与整数的加减运算 指针++,--运算 指针类型的算术运算 指针p加上或减去n 其意义是指针当前指向位置的前方或后方第n个数据的起始位置。 指针的++、--运算 意义是指向下一个或前一个完整数据的起始。 运算的结果值取决于指针指向的数
阅读全文
摘要:下面随笔给出C++指针笔记。 内存空间的访问方式 通过变量名访问 通过地址访问 指针的概念 指针:内存地址,用于间接访问内存单元 指针变量:用于存放地址的变量 指针变量的定义 例: static int i; static int* ptr = &i; 例: *ptr = 3; 与地址相关的运算——
阅读全文
摘要:下面随笔给出C++对象数组的要点。 对象数组的定义与访问 定义对象数组 类名 数组名[元素个数]; 访问对象数组元素 通过下标访问 数组名[下标].成员名 对象数组初始化 数组中每一个元素对象被创建时,系统都会调用类构造函数初始化该对象。 通过初始化列表赋值。 例:Point a[2]={Point
阅读全文
摘要:下面随笔给出C++数组的存储与初始化的细节内容。 数组的存储与初始化 一维数组的存储 数组元素在内存中顺次存放,它们的地址是连续的。元素间物理地址上的相邻,对应着逻辑次序上的相邻。 例如: 一维数组的初始化 在定义数组时给出数组元素的初始值。 列出全部元素的初始值 例如:static int a[1
阅读全文
摘要:下面随笔将给出C++多文件结构和预编译命令细节。 多文件结构和编译预处理命令 c++程序的一般组织结构 一个工程可以划分多个源文件 类声明文件(.h文件) 类实现文件(.cpp文件) 类的使用文件(main()所在.cpp文件) 利用工程来组合各个文件 多文件工程举例 1 //文件1,类的定义,Po
阅读全文
摘要:下面随笔说明C++共享数据保护机制。 共享数据的保护 对于既需要共享、又需要防止改变的数据应该声明为常类型(用const进行修饰)。 对于不改变对象状态的成员函数应该声明为常函数。 (1)常类型 ①常对象:必须进行初始化,不能被更新。 const 类名 对象名 ②常成员 用const进行修饰的类成员
阅读全文
摘要:下面给出C++类的友元机制说明(对类private、protected成员访问),需要注意的是,友元机制尽量不用或者少用,虽然它会提供某种程度的效率,但会带来数据安全性的问题。 类的友元 友元是C++提供的一种破坏数据封装和数据隐藏的机制。 通过将一个模块声明为另一个模块的友元,一个模块能够引用到另
阅读全文
摘要:下面是C++类的静态成员笔记。 静态数据成员特征 用关键字static声明 为该类的所有对象共享,静态数据成员具有静态生存期 必须在类外定义和初始化,用(::)来指明所属的类 举例说明-具有静态数据成员的Point类 代码示例: 1 #include<iostream> 2 3 using name
阅读全文
摘要:下面随笔记录了C++对象的生存期知识 静态生存期 这种生存期与程序的运行期相同。 在文件作用域中声明的对象具有这种生存期。 在函数内部声明静态生存期对象,要冠以关键字static 。 动态生存期 块作用域中声明的,没有用static修饰的对象是动态生存期的对象(习惯称局部生存期对象)。 开始于程序执
阅读全文
摘要:下面是关于C++的标识符的作用域与可见性学习记录,仅供参考 标识符的作用域与可见性 作用域是一个标识符在程序正文中有效的区域。 作用域分类 ①函数原型作用域 ②局部作用域(快作用域) ③类作用域 ④文件作用域 ⑤命名空间作用域 函数原形作用域 函数原型中的参数,其作用域始于"(",结束于")"。 函
阅读全文
摘要:1、字节对齐(内存相关) 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 各个硬件平台对存储空间的处
阅读全文
摘要:这篇文章给出(1)Jacobi与SOR迭代法的实现与性能比较及(2)均匀间距与Chebyshev插值的实现、性能分析及二者生成的插值误差比较,给出完整的实现代码,没有进行性能优化,仅供参考。 (1)Jacobi与SOR迭代法的实现与性能比较 一、举例计算 给出线性方程组: 其中n=100或者n=10
阅读全文
摘要:这篇文章给出不动点及牛顿法迭代是完整实现步骤,没有考虑运行效率及内存损耗,仅供参考。 一、举例计算 求下列方程的实根 (1) . x^2 - 3x + 2 - exp(x) = 0 (2). x^3 + 2x^2 +10x - 20 = 0 设计一种不动点及牛顿法迭代法,使迭代序列收敛,且计算到x(
阅读全文
摘要:本篇文章主要记录的是人脸检测数据源制作与ALEXNET网络训练实现检测到人脸(基于caffe)。 1、数据获取 数据获取: ① benchmark是一个行业的基准(数据库、论文、源码、结果),例如WIDER Face、FDDB ② 优秀论文,通常实验阶段都会介绍它所使用的数据集,公开数据集可以下载。
阅读全文