随笔分类 -  C/C++

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