【发布时间】:2010-10-09 15:27:09
【问题描述】:
我有一个缓冲区和几个指向它的指针。我想根据指针指向的缓冲区中的字节对指针进行排序。
qsort() 和 stl::sort() 可以被赋予自定义比较函数。例如,如果缓冲区是零终止的,我可以使用 strcmp:
int my_strcmp(const void* a,const void* b) {
const char* const one = *(const char**)a,
const two = *(const char**)b;
return ::strcmp(one,two);
}
但是,如果缓冲区不是以零结尾的,我必须使用需要长度参数的 memcmp()。
有没有一种简洁有效的方法可以在没有全局变量的情况下将缓冲区的长度放入我的比较函数中?
【问题讨论】:
标签: c++ c performance sorting stl