随笔分类 - C++
摘要:在源文件中#include".h" ,附加包含目录起作用 在头文件中#include".h" ,附加包含目录不起作用,该头文件连接不到*.h,只能把*.h添加到项目中,才能在该头文件中链接到*.h
阅读全文
摘要:Linux #include <dirent.h> inline int getdir (std::string dir, std::vector<std::string> &files) { DIR *dp; struct dirent *dirp; if((dp = opendir(dir.c_
阅读全文
摘要:参见https://www.runoob.com/cplusplus/cpp exceptions handling.html C++ 标准的异常 C++ 提供了一系列标准的异常,定义在 中,我们可以在程序中使用这些标准的异常。它们是以父子类层次结构组织起来的,如下所示: 下表是对上面层次结构中出现
阅读全文
摘要:nth_element(first,nth,last) first,last 第一个和最后一个迭代器,也可以直接用数组的位置。 将第n个大的元素放到nth位置上,左边元素都小于它,右边元素都大于它. 对 priority_queue 进行操作有一些限制: push(const T& obj):将ob
阅读全文
摘要:``` include include using namespace std; int main() { cout ::min() ::max() ::min() ::max() ::min() ::max() ::min() ::max() ::min() ::max() ::min() ::m
阅读全文
摘要:volatile 遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。 所以说volatile可以保证对特殊地址的稳定访问。 mutable 如果需要在const成员方法中修改一个成员变量的值,那么需要将这个成员变量修饰为mutable。即用mutab
阅读全文
摘要:ORBSLAM2中计算描述子距离时用到了计算不同位的个数 没看懂很神奇记下来 // Bit set count operation from // http://graphics.stanford.edu/~seander/bithacks.html CountBitsSetParallel int
阅读全文
摘要:目录结构 CMakeLists.txt base.h drive.cpp 运行结果
阅读全文
摘要:宏是由 define 定义而来,在预处理阶段进行宏展开,它的格式是:
阅读全文
摘要:摘自 "Jerry19880126" 简单类 简单类继承 带有虚函数的类 虚函数类继承 没有复写的继承 复写的继承 多重继承 内存分布从父类到子类,依次如下: Base中有一个虚表指针 DerivedClass1继承了Base,内存排布是先父类后子类。 DerivedClass2的情况是类似于Der
阅读全文
摘要:默认分割空格、tab、回车换行 include include include using namespace std; int main() { string str = "hello world sperated by spaces\tand\nhuiche"; vector arr; istr
阅读全文
摘要:转自 "时习之" STL中大家最耳熟能详的可能就是容器,容器大致可以分为两类,序列型容器(SequenceContainer)和关联型容器(AssociativeContainer)这里介绍STL中的各种序列型容器和相关的容器适配器。主要内容包括 std::vector std::array std
阅读全文
摘要:所有C++标准库的头文件都是没有.h结尾的。这么做是为了区分,C标准库的头文件和C++标准库的头文件。比如最具代表性的: 此外对于所有C标准库头文件,如果你是在C++项目中引用,你应该使用 include 这种方式而不是 include 这种形式。也就是说我们应该使用 include 而不是 inc
阅读全文
摘要:摘自 "时习之" C++标准库中提供两个容器表示数组这个概念:array表示静态数组,vector表示动态数组 。这两个类型都可以使用列表初始化(list initilization)来初始化。 这实际上是聚合初始化。 聚合初始化其实由来已久,在C语言中就存在了。 在C++中对于聚合体(aggreg
阅读全文
摘要:转自 "时习之" C++11中大部分的容器对于添加元素除了传统的 insert 或者 pusb_back/push_front 之外都提供一个新的函数叫做 emplace。 比如如果你想要向 std::vector 的末尾添加一个数据,你可以: 你也可以使用: 避免不必要的临时对象的产生 empla
阅读全文
摘要:

阅读全文
摘要:```
cvRound
cvFloor
cvCeil
cvIsNaN
cvIsInf
```
阅读全文
摘要:一、进程与线程 cpu一般有m核n线程的说法,那么该cpu只能同时运行n个线程(线程中没有sleep)。 include include include include include include include void simple_threadfunc() { LOG(INFO) _vec
阅读全文
摘要:1、cout经过缓冲后输出,默认情况下是显示器。可以重定向。 2、cerr不经过缓冲而直接输出,一般用于迅速输出出错信息,不可以被重定向。
阅读全文
摘要:一、对于C文件 对于C文件gcc和g++所做的事情确实是一样的,g++在编译C文件时调用了gcc。 二、对于C++文件 1.预处理 预处理gcc与g++做了相同的事。 2.编译 gcc无法自动和c++的库文件进行连接。 g++去可以通过编译并且生成汇编文件。 3.汇编 gcc和g++在这个过程中做了
阅读全文