У меня есть один буфер и несколько указателей на него. Я хочу сортировать указатели на основе байтов в буфере, на который они указывают.memcmp sort
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(), который требует параметра длины.
Есть ли аккуратный, эффективный способ получить длину буфера в моей функции сравнения без глобальной переменной?
избили меня на 30 секунд :) +1 –
Примечание: std :: sort принимает итераторы ** не ** контейнеры. –
ха-ха! - По крайней мере, вы получили правильный вызов std :: sort .. забыли об итераторах;) – eduffy