Форум программистов, компьютерный форум CyberForum.ru

Как оптимизировать функцию сотрировки строк? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрица/ Осуществить в цикле проверку факта расположения всех 10 точек на прямой, проходящей через начало координат... http://www.cyberforum.ru/cpp-beginners/thread792269.html
Дана матрица А с 2 строками и 10 столбцами.Первый элемент каждого столбца представляет абсциссу, а второй - ординату одной из 10 заданных точек. Осуществить в цикле проверку факта расположения всех 10 точек на прямой, проходящей через начало координат ( в этом случае имеет место пропорциональная зависимость абсцисс и ординат точек), заканчивая цикл, если указанный факт не подтверждается. В...
C++ Не выходит сделать вычисление void UTIL_Calculate( const float *v1, const float *v2, float flDist ) { float flMultiplier = flDist / 48.0; float MulScalar = v1 * flMultiplier; } float MulScalar = v1 * flMultiplier; const float *v1 http://www.cyberforum.ru/cpp-beginners/thread792264.html
Обход матриц и вычисление значений C++
Дана квадратная матрица порядка n. Найти наибольший ее элемент, расположенный в заштрихованной области. Размер матрицы и ее элементы вводятся с клавиатуры. Оформить ввод, вывод матрицы и обработку матрицы в виде функций. ПРОГРАММУ ПРОКОМЕНТИРОВАТЬ!
как вывести символ квадрата? C++
помогите, как вывести в консоль символ, который был бы похож на закрашенный квадрат? как например из таблицы символов, который я там нашел, вставить его в консоль? в общем мне любым способом надо вывести в консоль закрашенный квадрат, помогите
C++ Работа со структурой-стеком http://www.cyberforum.ru/cpp-beginners/thread792245.html
и здрасте! =) есть структура-стек (не знаю как точно назвать): struct iDiscipline_stek{ char name;//имя int num_course;//№ курса int num_term;//№ семестра int am_lec;//кол-во часов лекций int am_pr;//практик
C++ в чем разница между int(a) и (int)a? Собственно в этом и вопрос. подробнее

Показать сообщение отдельно
IvanPryamoy_2
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 23
22.02.2013, 10:18     Как оптимизировать функцию сотрировки строк?
VisualStudio2012, Win7x64Prof

Итак, есть массив строк типа wchar_t, которые надо отсортировать (пусть это список ФИО сотрудников). Вызов функции qsort:
C++
1
qsort((void*) ArrayFIO, QuantityFIO, sizeof(wchar_t*), cmp_wchar_t);
А вот как выглядит функция сравнения строк:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int cmp_wchar_t(void const *const str1, void const *const str2)
{
    //так как сравниваются строки wchar_t, то передаются указатели на строки, значит указатели на указатели
    cint Lenght1 = wcslen(*(wchar_t**) str1);
    cint Lenght2 = wcslen(*(wchar_t**) str2);
    cint Lenght = min(Lenght1, Lenght2);
 
    for(int Index = 0; Index < Lenght; ++Index)
    {
        if((*(wchar_t**)str1)[Index] < (*(wchar_t**)str2) [Index]) return -1;
        else if((*(wchar_t**)str1)[Index] > (*(wchar_t**)str2) [Index]) return 1;
    }
 
    if(Lenght1 == Lenght2) return 0;
    else if(Lenght1 < Lenght2) return -1;
    else return 1;
}
Меня напрягает постоянное преобразование указателей:
C++
1
2
(*(wchar_t**)str1)
(*(wchar_t**)str2)
Можно как-то от него избавиться? Или оно не замедляет работу программы? Функция сравнения библиотечная, поэтому использовать какие-то глобальные переменные типа временного буфера вряд ли получится.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru