随笔分类 - C/C++
摘要:RTTI(Run Time Type Information,运行时类型信息),用于运行时获取对象的类型信息。 1、dynamic_cast:将基类指针或者引用安全地转换成派生类指针或者引用。 2、typeid函数:返回指针或者引用指向的对象的类型信息。
阅读全文
摘要:x + y = sum 1、最简单的想法就是直接两重循环,嵌套遍历x和y,时间复杂度是O(N2),N是数组的元素个数。 2、转化一下,x = sum - y。sum - y遍历y可以得到,时间复杂度是O(N)。问题变成:对比两个数组,是否包含相同元素。嵌套遍历,还是两重循环。但是如果其中一个数组是有
阅读全文
摘要:求浮点数x的平方根y,精度误差e。 1、显然y <= x,即在 [0, x] 中查找一个y,使得满足 | y * y - x | <= e,很容易想到二分查找,时间复杂度是O(logx)。
阅读全文
摘要:虚(virtual)函数是为了实现多态,派生类可以覆写(override)基类的虚函数。 1、多态(polymorphism),即基类指针或者引用,可能指向基类对象,也可能指向派生类对象,会根据运行时具体指向的对象,来调用不同的函数。 2、如果没有多态,则什么类型的指针或者引用,就会调用什么类型的对
阅读全文
摘要:1、union的所有成员共用相同的内存,大小由最长的成员决定;结构体的各个成员占用不同的内存。 2、判断主机字节序是小端还是大端。
阅读全文
摘要:1、struct的默认继承权限和默认访问权限都是public。 2、class的默认继承权限和默认访问权限都是private。
阅读全文
摘要:1、inline只是对编译器的请求,编译器可能会拒绝。
阅读全文
摘要:1、this,是指向当前对象的指针。 2、成员函数的一个隐含参数是this。 3、this是右值,即不能取址。 4、访问非静态成员变量时,都在隐式使用this。
阅读全文
摘要:1、静态成员函数,可以用类或者对象来调用,不可以访问非静态成员变量。 2、静态成员变量,可以用类或者对象来访问,所有对象共用同一个静态成员变量。 3、静态函数,限制函数的作用域为所在文件。 4、静态变量,程序运行前,就被分配在静态区了。
阅读全文
摘要:在使用C++标准库时,为了方便,常常直接添加如下using编译指令: 不少人建议不要直接这么用,因为这样增大了命名冲突的可能性,但其实跟标准库命名冲突的可能性很小,冲突了也基本是很明显的编译错误。 当然,最好是能控制影响范围,比如尽量不要在头文件中using namespace std,因为头文件可
阅读全文
摘要:noexcept 说明符:要求函数不抛出任何异常。调用方可以不进行异常捕获。有利于编译器优化,因为异常检测需要运行时创建额外的代码。 运算符: 移动构造函数,移动赋值函数,swap
阅读全文
摘要:显式指定动态链接库的符号可见性。 -fvisibility default hidden internal protected 参考链接: https://gcc.gnu.org/wiki/Visibility
阅读全文
摘要:#pragma once和#ifndef #define #endif,都可以用来防止同一个头文件被include多次。 #pragma once 预处理指令, #ifndef #define #endif 根据宏名来保证,主要问题是命名冲突。
阅读全文
摘要:在编译Xcode工程时,常常会遇到头文件找不到的情况,例如下图中的OpenCV: 这时可以检查一下Xcode工程的配置: TARGETS -> 正在编译的target -> Build Settings -> Other C++ Flags 把缺失的头文件目录加上,例如我的OpenCV对应的路径是/
阅读全文
摘要:SIMD Single Instruction Multiple Data
阅读全文
摘要:想知道某一位是否为1,只需和当前位对应的2的幂进行按位与运算即可。 如下示例,可以知道第6位是1,同理可知其他位是否为1,累加就能得到1的个数: 100101001 000100000
阅读全文

浙公网安备 33010602011771号