 |
|

02.03.2023, 20:43
|
|
Участник форума
Регистрация: 27.05.2021
Сообщений: 140
С нами:
2614229
Репутация:
33
|
|
I need some function to take the color from the .INI itself that does not cause me problems, is for ImGui::ColorEdit, since the function that I use takes them like this:

|
|
|

02.03.2023, 23:01
|
|
Участник форума
Регистрация: 25.11.2018
Сообщений: 263
С нами:
3929792
Репутация:
78
|
|
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
)
;
Почему массив сортируется неправильно?
|
|
|

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

|
|
|

03.03.2023, 02:17
|
|
Участник форума
Регистрация: 25.11.2018
Сообщений: 263
С нами:
3929792
Репутация:
78
|
|
[QUOTE="AdCKuY_DpO4uLa"]
Потому что это бред. Тебе писали выше, использовать std::begin для получения "начала" Массива и std::end для получения "конца" Массива, ты же тупо разыменовал указатель и передал его по ссылке. Что? Зачем? Для чего? Мало того, ты потом пытаешься это снова привести к указатель. Складывается такое впечатление, что ты и доки к _wcsicmp не читал. Это функция сравнения двух строк, без учёта регистра, которая вернёт > 0, если str1 длинее str2, каким образом там должна быть сортировка, мне не известно, судя по твоему коду, твоя функция будет всегда возвращать что-то одно, причём не понятно в каких случаях что, вероятнее всего, это вообще UB(могу ошибаться)
C++:
[CODE]
#include
#include
#include
int
main
(
)
{
std
::
wstring str
{
L
"awdawdawdfawawdjnsfuhjksd"
}
;
std
::
wcout
|
|
|

03.03.2023, 02:35
|
|
Постоянный
Регистрация: 08.03.2016
Сообщений: 332
С нами:
5358262
Репутация:
213
|
|
Сообщение от Leatington
Мне нужно сортировать массив wchar_t, а не строку, а begin и end с ними не работает.
str.data() и тебе выкакает массив
|
|
|

03.03.2023, 02:42
|
|
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами:
4553429
Репутация:
153
|
|
Сообщение от Leatington
Как в std::sort передать массив wchar_t?
Сообщение от Leatington
Мне нужно сортировать массив wchar_t, а не строку, а begin и end с ними не работает.
Попробуй
C++:
[CODE]
#include
#include
#include
bool
compare
(
const
wchar_t
*
a
,
const
wchar_t
*
b
)
{
return
(
_wcsicmp
(
a
,
b
)
>
0
)
;
}
int
main
(
)
{
const
wchar_t
*
arr
[
]
=
{
L
"abcd"
,
L
"efg"
,
L
"hi"
,
L
"jklmno"
}
;
const
size_t arr_size
=
sizeof
(
arr
)
/
sizeof
(
arr
[
0
]
)
;
std
::
sort
(
arr
,
arr
+
arr_size
,
compare
)
;
for
(
size_t i
=
0
;
i
|
|
|

03.03.2023, 02:50
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
Сообщение от Leatington
Мне нужно сортировать массив wchar_t, а не строку, а begin и end с ними не работает.
C++:
[CODE]
#include
#include
int
main
(
)
{
wchar_t
arr
[
]
=
{
0x100
,
0x200
,
0x300
,
0x105
,
0x90
,
0x700
}
;
for
(
auto
&
it
:
arr
)
std
::
cout

|
|
|

03.03.2023, 02:50
|
|
Познавший АНТИЧАТ
Регистрация: 14.07.2019
Сообщений: 1,097
С нами:
3596877
Репутация:
183
|
|
Сообщение от !Sam#0235
I need some function to take the color from the .INI itself that does not cause me problems, is for ImGui::ColorEdit, since the function that I use takes them like this:
use this function to get color from ini and pass it to ImGui::ColorEdit
C++:
Код:
ImVec4
getColorFromINI
(
const
char
*
key
,
const
char
*
fileName
)
{
ImVec4 color
;
char
buffer
[
256
]
=
{
}
;
GetPrivateProfileString
(
"color"
,
key
,
""
,
buffer
,
sizeof
(
buffer
)
,
fileName
)
;
sscanf
(
buffer
,
"R %f G %f B %f"
,
&
color
.
x
,
&
color
.
y
,
&
color
.
z
)
;
color
.
w
=
1.0f
;
// Alpha
return
color
;
}
|
|
|

03.03.2023, 14:45
|
|
Новичок
Регистрация: 03.03.2023
Сообщений: 1
С нами:
1685022
Репутация:
0
|
|
Не могу пересобрать, в чом прикол? 1677840341871.pngggwate2 · 3 Мар 2023 в 13:45' data-fancybox="lb-post-1265276" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/191940/" style="cursor: pointer;" title="1677840341871.png">

|
|
|

03.03.2023, 23:08
|
|
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами:
3831395
Репутация:
183
|
|
Как сделать проверку на то заспавнился ли игрок без задействования памяти SAMP?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|