- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
bool checkForExe(std::string ext)
{
return ext==".exe" ? true :
ext==".Exe" ? true :
ext==".eXe" ? true :
ext==".EXe" ? true :
ext==".exE" ? true :
ext==".ExE" ? true :
ext==".eXE" ? true :
ext==".EXE" ? true : false;
}
guest 29.03.2010 19:26 # −1
имхо, это может быть не быдлокод, а оптимизация...
бенчмарки в студию!
guest 29.03.2010 19:30 # −7.4
guest 30.03.2010 11:50 # +4
Какая Вы, уважаемый гость, няшечка
=3
guest 31.03.2010 13:15 # +1.6
guest 29.03.2010 20:00 # +2
Z от z находится на смещении, равном 0х20, как и вся латиница собственно, и от локали это не зависит... намного быстрей будет по кодам пробить, чем строки сравнивать.
guest 29.03.2010 22:44 # 0
frp 02.04.2010 17:11 # −1
crox 02.04.2010 16:24 # 0
frp 29.03.2010 21:50 # −1
guest 29.03.2010 23:00 # −1.8
если убрать из сравнения ненужную точку, то смори как будет:
1. в варианте, на который все думают, в стеке делаем строку, копируем в неё содержимое принятой, изменяем смещения каждого символа и сравниваем, так? итого - 3 операции копирования (на каждый символ) и 3 операции сравнения (максимум - может и сразу failнуть на первом), т.е. от 4 до 6 операций.
2. в случае сего говнокода имеем такой расклад: копирования нет, а есть только сравнения. В 99% случаев расширение стоит в lower case, поэтому сработает только первое условие, а это 3 операции )))
т.е. сей говнокод в 99% случаев выгоднее правильнее кода. правильный код - правильный, но будет тормознее в 99% случаев.
и где здесь проигрыш?))
guest 29.03.2010 23:06 # 0
guest 29.03.2010 23:08 # 0
пойду-ка дальше дышать бензином
guest 29.03.2010 23:14 # 0
почитал в вику, оказхывается в русском языке такая убогая терминология=\
guest 29.03.2010 23:25 # −9
твой мама тапкой толстый
guest 29.03.2010 23:34 # +2
guest 30.03.2010 08:18 # +1.6
return ext==".exe" ? true :
ext==".EXE" ? true :
ext==".Exe" ? true :
ext==".eXe" ? true :
ext==".EXe" ? true :
ext==".exE" ? true :
ext==".ExE" ? true :
ext==".eXE" ? true : false;
guest 30.03.2010 08:19 # +2.4
crox 02.04.2010 16:29 # +1.2
ext == ".exe" || ext == ".Exe" || ext == ".eXe"...
guest 29.03.2010 20:04 # −6.4
guest 29.03.2010 21:09 # −2.4
guest 29.03.2010 21:11 # +2.6
guest 31.03.2010 08:48 # +1.4
frp 29.03.2010 21:47 # +2.6
Amok 02.04.2010 20:36 # +0.4
Вместо одного
http://www.govnokod.ru/2892#comment19499
linux-hacker 03.04.2010 18:20 # 0
linux-hacker 02.04.2010 23:52 # 0
guest 03.04.2010 11:03 # −1
linux-hacker 03.04.2010 18:16 # +1
guest 03.04.2010 20:14 # −1
Я думал C++ Standard Library == STL.
sogekoder 18.08.2010 22:30 # +1
guest 29.03.2010 22:22 # 0
А был-бы тут хотя-бы факториал..
frp 30.03.2010 08:56 # 0
guest 30.03.2010 21:36 # +1.2
прозреваю заговор и прочую хуйню
guest 30.03.2010 23:43 # −0.2
{
return ext==".exe" || ext==".Exe" || ext==".eXe" || ext==".EXe" || ext==".exE" || ext==".ExE" ||
ext==".eXE" || ext==".EXE";
}
guest 31.03.2010 08:50 # −0.2
mrbig66 02.04.2010 08:00 # −2.4
guest 03.04.2010 20:15 # −0.4
guest 04.04.2010 01:37 # +0.4
mrbig66 04.04.2010 20:43 # 0
guest 05.04.2010 22:06 # −2
guest 05.05.2010 16:57 # +1
guest 05.05.2010 20:47 # +1
guest 02.04.2010 08:33 # +0.2
Amok 02.04.2010 14:51 # +5.4
//C style
return !stricmp(".exe",ext.c_str());
guest 03.04.2010 20:16 # +2.8
guest 03.04.2010 20:16 # −1.4
Делаем так:
return ext==".exe" || ext==".Exe" || ext==".eXe" || ext==".EXe" || ext==".exE" || ext==".ExE" ||
ext==".eXE" || ext==".EXE";
guest 04.04.2010 11:08 # −5
guest 14.04.2010 14:44 # 0