STL sort算法的参数 cmp
cmp中需要使用弱排序,对于单个元素排序(不能是a <= b)
bool cmp(int a, int b){
return a < b;
}
二维比较
bool cmp(const vector<int> a, const vector<int>& b)
{
if(a[0] != b[0])
return a[0] < b[0];
else
return a[1] < b[1];
}
grpof使用的问题
若想通过gprof看到程序各部分的性能,则在编译命令中不能使用gcc优化(-O2, -O3),gcc优化会引入流水线技术等,对程序修改,导致gprof得到的结果与期望的不一致
头文件、源文件中的声明与定义
需求:头文件声明一个数组,源文件定义一个数组
- 错误版本
a.h 声明
extern int* arr;
a.cpp 定义
int arr[100];
错误类型:声明与定义不兼容
错误原因:编译器会识别extern关键字,发现声明的arr是一个int类型的指针,占4个字节,在a.cpp中找到其定义,发现arr是一个数组,大小为100(虽然arr也是一个指针),因此出现定义不兼容