Ordinary

C和C++安全编码笔记:总结

一曲冷凌霜 提交于 2020-08-12 08:34:14
《C和C++安全编码》(原书第2版)这本书是2013年出版的。 这里是基于之前所有笔记的简单总结,笔记列表如下: 字符串: https://blog.csdn.net/fengbingchun/article/details/105325508 指针诡计: https://blog.csdn.net/fengbingchun/article/details/105458861 动态内存管理: https://blog.csdn.net/fengbingchun/article/details/105921174 整数安全: https://blog.csdn.net/fengbingchun/article/details/106444980 格式化输出: https://blog.csdn.net/fengbingchun/article/details/106728792 并发: https://blog.csdn.net/fengbingchun/article/details/106962487 文件I/O: https://blog.csdn.net/fengbingchun/article/details/107138261 下面是对每章中关键语句的摘记: 1. 字符串 : 在获取一个数组的大小时,不要对一个指针应用sizeof运算符。 每个UTF-8字符由1

第9章 在实践中使用模板:9.2 模板和内联

情到浓时终转凉″ 提交于 2020-08-12 07:34:25
9.2 Templates and inline 9.2 模板和内联 Declaring functions to be inline is a common tool to improve the running time of programs. The inline specifier was meant to be a hint for the implementation that inline substitution of the function body at the point of call is preferred over the usual function call mechanism. 将函数声明为inline是提高程序性能的一种常见手段。inline修饰符是给编译器一个提示,即要优先在函数调用处用函数体作内联替换,而不是使用常规的函数调用机制。 However, an implementation may ignore the hint. Hence, the only guaranteed effect of inline is to allow a function definition to appear multiple times in a program (usually because it appears in a header

小工具chmod设置权限解读

爷,独闯天下 提交于 2020-08-11 18:16:06
1. busybox中chmod chmod用于改变文件模式。 1.1 chmod模式解读 int FAST_FUNC bb_parse_mode( const char * s, unsigned current_mode) { static const mode_t who_mask[] = { S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO, /* a */ S_ISUID | S_IRWXU, /* u */---------------user的意思,表示当前用户权限。 S_ISGID | S_IRWXG, /* g */---------------group的意思,表示当前组权限。 S_IRWXO /* o */---------------other的意思,表示其他用户权限,不属于本组。 }; static const mode_t perm_mask[] = { S_IRUSR | S_IRGRP | S_IROTH, /* r */ S_IWUSR | S_IWGRP | S_IWOTH, /* w */ S_IXUSR | S_IXGRP | S_IXOTH, /* x */ S_IXUSR | S_IXGRP | S_IXOTH, /* X -- special -- see below *

类型名称后面的括号是否与new有所不同?

耗尽温柔 提交于 2020-08-09 16:35:56
问题: If 'Test' is an ordinary class, is there any difference between: 如果“测试”是普通类,则之间是否有任何区别: Test* test = new Test; and 和 Test* test = new Test(); 解决方案: 参考一: https://stackoom.com/question/2bKD/类型名称后面的括号是否与new有所不同 参考二: https://oldbug.net/q/2bKD/Do-the-parentheses-after-the-type-name-make-a-difference-with-new 来源: oschina 链接: https://my.oschina.net/u/4432649/blog/4316716

随机量子化:(1) 宇宙是个 SGD 模拟

旧时模样 提交于 2020-08-07 10:56:00
大家都知道路径积分量子化,正则量子化,BRST量子化等等。不过还有一种小众的量子化,很有趣,而且可以很科幻,它就是随机量子化(stochastic quantization)。 从随机量子化的观点,可将我们的整个宇宙看成一个SGD模拟。 决定这个SGD的步长。 ============================================ 从 Feynman-Kac 看,SDE、PDE、路径积分之间有丰富的联系,那么,是否可从经典的随机过程,反向推出量子场论?这就是随机量子化的起源。 例如最简单的情况,薛定谔方程和随机扩散: 所以我们可想象所有物体都在永恒以 的程度"随机抖动"(越轻的物体越抖,符合直觉),随后可构造某种隐变量理论。 不过,这里的时间 有虚实的差异;而且波函数 是复函数,概率密度 是实函数;也看不出怎么把真正的 Yang-Mills 塞进去;所以这只是有趣的想法。 后续经过 Nelson(1966) 和 Parisi-Wu (1981) 的努力,随机量子化也可容纳不同自旋和 non-abelian 规范场等等,因此,不是 toy model,是个值得关注的理论。 ============================================ 随机量子化的对应关系: D维的量子场论 <=> D+1维的随机场论【经典SGD(Langevin)

最小二乘法实现C++

早过忘川 提交于 2020-08-07 07:39:52
来源: http://blog.csdn.net/qll125596718/article/details/8248249 求a、b的值: // Ordinary Least Square.cpp : 定义控制台应用程序的入口点。 // #include " stdafx.h " #include <iostream> #include <fstream> #include <vector> using namespace std; class LeastSquare { double a, b; public : LeastSquare( const vector< double >& x, const vector< double >& y) //最小二乘法公式 { double t1 = 0, t2 = 0, t3 = 0, t4 = 0; for ( int i = 0; i < x.size(); ++i) { t1 += x[i] * x[i]; t2 += x[i]; t3 += x[i] * y[i]; t4 += y[i]; } a = (t3 * x.size() - t2 * t4) / (t1 * x.size() - t2 * t2); b = (t1 * t4 - t2 * t3) / (t1 * x.size() - t2 * t2); }

Java开发规范入门学习笔记

时间秒杀一切 提交于 2020-08-06 15:52:12
分层领域模型规约: DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。 DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象。 BO( Business Object):业务对象。 由Service层输出的封装业务逻辑的对象。 AO( Application Object):应用对象。 在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复用度不高。 VO( View Object):显示层对象,通常是Web向模板渲染引擎层传输的对象。 POJO( Plain Ordinary Java Object):在本手册中, POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。 Query:数据查询对象,各层接收上层的查询请求。 注意超过2个参数的查询封装,禁止使用Map类来传输。 领域模型命名规约: 数据对象:xxxDO,xxx即为数据表名。 数据传输对象:xxxDTO,xxx为业务领域相关的名称。 展示对象:xxxVO,xxx一般为网页名称。 POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。 来源: oschina 链接: https://my.oschina.net/u/4393036/blog

Python 线性回归(Linear Regression) 基本理解

牧云@^-^@ 提交于 2020-04-29 11:07:58
背景 学习 Linear Regression in Python – Real Python ,对线性回归理论上的理解做个回顾,文章是前天读完,今天凭着记忆和理解写一遍,再回温更正。 线性回归(Linear Regression) 刚好今天听大妈讲机器学习,各种复杂高大上的算法,其背后都是在求”拟合“。 线性回归估计是最简单的拟合了。也是基础中的基础。 依然是从字面上先来试着拆解和组合: 首先, Regression 回归,指的是研究变量之间的关系,这个由来在 Python 线性回归(Linear Regression) - 到底什么是 regression? 一文中讲多了,这里不多重复。 然后, linear 线性,很直观:直线。 二者连在一起,便是:变量之间呈直线关系。 那具体是哪些变量之间? 因变量 y 和 自变量 (x1...xr) 之间。 𝑦 = 𝛽₀ + 𝛽₁𝑥₁ + ⋯ + 𝛽ᵣ𝑥ᵣ + 𝜀 当只有一个 x1 的时候,就是最简单的线性回归 𝑦 = 𝛽₀ + 𝛽₁𝑥₁ 。 具体怎么理解这个公式呢? 举个简化的例子:员工的工资 y 与 学历 x 的关系。 假设学历越高,工资也越高,二者是某种程度上的线性关系, 那在 理论上 会存在这么一个公式 y = 𝛽₀ + 𝛽₁𝑥 ,其中,x1...xn, y1...yn: x 和 y 的数据很容易拿到(当然合法渠道了,假设你是

[c++] Why should I use Smart Pointers

感情迁移 提交于 2020-04-26 14:57:45
深入理解智能指针 专有指针 Ref: unique_ptr的使用和陷阱 一、初始化 只可以使用new来分配内存,不可 拷贝和赋值。 unique_ptr< int > up1( new int ()); // okay,直接初始化 unique_ptr < int > up2 = new int (); // error! 构造函数是 explicit unique_ptr < int > up3(up1); // error! 不允许拷贝 二、基本操作 unique_ptr<T> up 空的unique_ptr,可以指向类型为T的对象,默认使用delete来释放内存 unique_ptr <T,D> up(d) 空的unique_ptr同上,接受一个D类型的删除器d,使用删除器d来释放内存 up = nullptr 释放up指向的对象,将up置为空 up.release() up放弃对它所指对象的控制权,并返回保存的指针,将up置为空,不会释放内存 up.reset(…) 参数可以为 空、内置指针,先将up所指对象释放,然后重置up的值. View Code 三、参数、返回值 unique_ptr不可拷贝和赋值,那要怎样传递unique_ptr参数和返回unique_ptr呢? 事实上不能拷贝unique_ptr的规则有一个例外:我们可以拷贝或赋值一个将要被销毁的unique

linux中find命令的使用详解(转载)

岁酱吖の 提交于 2020-04-24 20:29:47
常用命令 find (目录) [-type d | f] (文件夹 | 文件) -name (名称,可使用正则表达式) find /root -name "*core" find /root -type d -name "*core" 文件夹 find /root -type f -name "*core" 文件 find /root -type f -path "*core" 路径 find /root -name "*core" -delete 查到后删除 find /root -size +20M (-20M) 大于20M(小于20M) find /root -name "*core" -exec ls {} \; 对查找后的文件执行ls操作 壹——主要内容 1. 用文件名查找文件 2.用文件名查找文件,忽略大小写 3. 使用mindepth和maxdepth限定搜索指定目录的深度 4. 在find命令查找到的文件上执行命令 5. 相反匹配 6. 使用inode编号查找文件 7. 根据文件权限查找文件 8. 找到home目录及子目录下所有的空文件(0字节文件) 9. 查找5个最大的文件 10. 查找5个最小的文件 11. 使用-type查找指定文件类型的文件 12. 通过和其他文件比较修改时间查找文件 13. 通过文件大小查找文件 14. 给常用find操作取别名 15.