stl排序函数用户自定义比较函数扩展
2014-06-09 14:45
246 查看
c++的STL的qsort函数,在自定义比较函数时,cmp函数如下:
测试函数如下:
去掉注释,看看输出结果.
这里只对
printf("%x\n",(char*)(*(char*)(str)));
printf("%x\n",(char*)(*(int*)(str+1)))
两个语句的不同结果,提出自己的困惑,还请大神指教!!
int pstrcmp(const void *p1, const void *p2) { return strcmp((char*)(*(int*)(p1)), (char*)(*(int*)(p2))); }
测试函数如下:
#include<iostream> #include<cstring> #include<algorithm> using namespace std; int main() { char **str=new char*[3]; str[0]=new char[8]; strcpy(str[0],"4873279"); str[1]=new char[8]; strcpy(str[1],"3101010"); str[2]=new char[8]; strcpy(str[2],"4873279"); printf("%x\n",str[1]); // printf("%d\n",str+1); // printf("%x\n",(char*)(*(int*)(str+1)));// output adress ,same with above // printf("%x\n",(*(char*)(str)));//output 40H // printf("%x\n",(char*)(*(char*)(str)));//output 40H qsort(str,3,8,pstrcmp); cout<<str[0]<<endl; cout<<str[1]<<endl; cout<<str[2]<<endl; return 0; }
去掉注释,看看输出结果.
这里只对
printf("%x\n",(char*)(*(char*)(str)));
printf("%x\n",(char*)(*(int*)(str+1)))
两个语句的不同结果,提出自己的困惑,还请大神指教!!
相关文章推荐
- php usort 使用用户自定义的比较函数对二维数组中的值进行排序
- PHP 使用用户自定义的比较函数对数组中的值进行排序
- usort — 使用用户自定义的比较函数对数组中的值进行排序
- PHP usort 使用用户自定义的比较函数对数组中的值进行排序
- usort( )函数—使用用户自定义的比较函数对数组中的值进行排序
- PHP 使用用户自定义的比较函数对数组元素排序
- STL中sort、priority_queue、map、set的自定义比较函数
- [C++]LeetCode: 128 Largest Number (自定义比较函数排序)
- 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
- 使用sort 和自定义比较函数对任意成员变量排序
- C++ 使用STL时自定义比较函数cmp
- 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
- STL 自定义比较函数
- stl中map自定义比较函数
- stl中map自定义比较函数
- STL中sort、priority_queue、map、set的自定义比较函数
- STL自定义比较函数
- stl中各种容器的自定义比较函数
- 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
- STL中sort、priority_queue、map、set的自定义比较函数