- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
// https://github.com/santiontanon/stransball2/blob/dff413c6ed236b4be23e0152557a26d7d902976c/sources/state_changepack.cpp#L67
bool state_changepack_cycle(SDL_Surface *screen,int sx,int sy,unsigned char *keyboard)
{
if (SUBSTATE==0) {
if (image!=0) SDL_FreeSurface(image);
image=IMG_Load("graphics/tittle.pcx");
{
levelpacks.Delete();
#ifdef _WIN32
/* Find files: */
WIN32_FIND_DATA finfo;
HANDLE h;
h=FindFirstFile("maps/*.lp",&finfo);
if (h!=INVALID_HANDLE_VALUE) {
char *tmp;
tmp=new char[strlen(finfo.cFileName)+1];
strcpy(tmp,finfo.cFileName);
levelpacks.Add(tmp);
while(FindNextFile(h,&finfo)==TRUE) {
char *tmp;
tmp=new char[strlen(finfo.cFileName)+1];
strcpy(tmp,finfo.cFileName);
levelpacks.Add(tmp);
} /* while */
} /* if */
#else
DIR *dp;
struct dirent *ep;
dp = opendir ("maps");
if (dp != NULL)
{
while (ep = readdir (dp))
{
char *tmp;
if (strlen(ep->d_name)>4 &&
ep->d_name[strlen(ep->d_name)-3]=='.' &&
ep->d_name[strlen(ep->d_name)-2]=='l' &&
ep->d_name[strlen(ep->d_name)-1]=='p') {
tmp=new char[strlen(ep->d_name)+1];
strcpy(tmp,ep->d_name);
levelpacks.Add(tmp);
} /* if */
}
(void) closedir (dp);
}
#endif
А как это решали до "C++20" ?
во-вторых есть substr
Грубо гря
stl, итераторы и шаблоны
Какое-то нелогичное неконсистентное пизданатство
Я не крестовик же, нужно Госта спросить, или Борманда.
Вангую, что строки Страуструп сделал раньше, чем Степанов свои коллекции
* кстати, анекдот на эту тему: ответить без гугла чем отличаются методы length() и size() у строки?
https://stackoverflow.com/questions/11358879/benefits-of-vectorchar-over-string
упомянутая мною оптимизация это small string optimization
Остальное ридабилити
В общем С++ это такой странный мир, где зачем-то есть vector<bool>, а строки развиваются параллельно с контейнерами, но при этом это и не строки вовсе, а тоже контейнеры со спец типами типа чар (в смысле строки не понимают там всякие юникоды)
Ситуация напоминает как в жабе есть 100500 фреймворков для логирования, например
зы: блядь как пиздато опять пиздеть про С++, а не про войну
Ничем. Вообще ничем. Даже для wide и multibyte строк.
С этим, кстати, связано ещё одно говно.
С появлением ranges, все алгоритмы переделали на их поддержку. Лежат эти новые алгоритмы в std::ranges::, а старые в std::.
Вся новая хуйня добавляется в std::ranges::, её аналог в std:: — нет. То есть, в большинстве случаев если ты напишешь std::huita вместо std::ranges::huita, всё будет работать. Но иногда нет. За 20 лет скопилось огромное количество материала, показывающего, как использовать говно из std::.
То есть, кто-нибудь, использующий учебники, написанные лет 5 назад, может хватить неиллюхорный диссонанс, когда в каких-то случаях всё работает, а в каких-то надо впихивать ranges в середину.
Задепрекетить все старые алгоритмы с сообщением «пользуйтесь новыми в ranges» не додумались.
это у std::string? орлы?
курица не птица
болгария не заграница
std::string не строка
Тот же самый вопрос про strlen, да и про всю str* серию функций.
какой алогоритм Шлемеля зе пейнтера
>new
ого, это кресты
Он накопипастил куски кода из разных мест, или это он так "C++" знает?
Хм...
Хотя вот функция opendir() это из "POSIX", в винде такой хуйни вроде нет.
An application cannot create a directory by using CreateFile, therefore only the OPEN_EXISTING value is valid for dwCreationDisposition for this use case. To create a directory, the application must call CreateDirectory or CreateDirectoryEx.
To open a directory using CreateFile, specify the FILE_FLAG_BACKUP_SEMANTICS flag as part of dwFlagsAndAttributes. Appropriate security checks still apply when this flag is used without SE_BACKUP_NAME and SE_RESTORE_NAME privileges.
Вконтактники любят конечно писать
но Шлёму Зепейнтера они не заказывали
Ну возможно, но расчитывать не стоит
Вот кстати крестостроки же вроде свою длину считают один раз, так что они еще и этим лучше
В не очень хороших ВУЗах иногда учат си и сразу си++, и в голове образовывается такая вот кашица