
03.03.2023, 01:29
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
Сообщение от Leatington
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
)
;
Почему массив сортируется неправильно?
Потому что это бред. Тебе писали выше, использовать std::begin для получения "начала" Массива и std::end для получения "конца" Массива, ты же тупо разыменовал указатель и передал его по ссылке. Что? Зачем? Для чего? Мало того, ты потом пытаешься это снова привести к указатель. Складывается такое впечатление, что ты и доки к _wcsicmp не читал. Это функция сравнения двух строк, без учёта регистра, которая вернёт > 0, если str1 длинее str2, каким образом там должна быть сортировка, мне не известно, судя по твоему коду, твоя функция будет всегда возвращать что-то одно, причём не понятно в каких случаях что, вероятнее всего, это вообще UB(могу ошибаться)
C++:
[CODE]
#include
#include
#include
int
main
(
)
{
std
::
wstring str
{
L
"awdawdawdfawawdjnsfuhjksd"
}
;
std
::
wcout

|
|
|