Сравнение qsort со std ::sort

Я отсылаю вас к предыдущей ссылке, которая сравнивает производительность qsort и stdsort .

Я написал программу на C, которая заполняет большой массив std::map, и я хочу отсортировать массив. В настоящее время я использую qsort.

typedef std::map TSrcMap;
TPSrcMap sp;
TSrcMap::iterator its;
/*Code to populate the array_start.*/

/*Code to populate the array_end.*/

typedef struct port_count
{
        uint32_t port_number;
        uint32_t port_count;
}port_count_t;

port_count_t pcount[10];
memset(pcount,0,sizeof(pcount));
size_t structs_len = sizeof(pcount)/sizeof(port_count_t);
for(its = stcp.begin(); its != stcp.end();its++)
{
      if(pcount[smallest_index].port_count < (*its).second)
      {
            pcount[smallest_index].port_count = (*its).second;
            pcount[smallest_index].port_number = (*its).first;
            /*qsort(pcount, structs_len, sizeof(port_count_t), struct_cmp_by_port_count);*/
            std::sort(pcount,sizeof(port_count_t));
      }
}

Функция qsortправильно сортирует массив. Я хочу сравнить производительность qsortс std::sort, но вызов std::sortвызывает ошибку компиляции

нет соответствующей функции для вызова ‘sort(port_count_t [10], long unsigned int)’

. Я хотел бы сравнить производительность std::sortс qsortалгоритм. Как мне это сделать?

0
задан Deduplicator 11 October 2018 в 15:52
поделиться