- 287
- 478
Потому что это бред. Тебе писали выше, использовать std::begin для получения "начала" Массива и std::end для получения "конца" Массива, ты же тупо разыменовал указатель и передал его по ссылке. Что? Зачем? Для чего? Мало того, ты потом пытаешься это снова привести к указатель. Складывается такое впечатление, что ты и доки к _wcsicmp не читал. Это функция сравнения двух строк, без учёта регистра, которая вернёт > 0, если str1 длинее str2, каким образом там должна быть сортировка, мне не известно, судя по твоему коду, твоя функция будет всегда возвращать что-то одно, причём не понятно в каких случаях что, вероятнее всего, это вообще UB(могу ошибаться)C++:bool srt(const wchar_t &value1, const wchar_t & value2) { return (_wcsicmp((wchar_t*)value1, (wchar_t*)value2) > 0); } sort(*russian_names, *russian_names, srt);
Почему массив сортируется неправильно?
C++:
#include <iostream>
#include <string>
#include <algorithm>
int main()
{
std::wstring str{ L"awdawdawdfawawdjnsfuhjksd" };
std::wcout << str << std::endl;
std::sort(str.begin(), str.end());
std::wcout << str << std::endl;
return 0;
}
Последнее редактирование: