- 1
if (i.toString().indexOf('.') == -1) { ... }
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+129
if (i.toString().indexOf('.') == -1) { ... }
Ещё один способ проверить, целое ли число.
+163
function loading() {
$('#close').hide(function() {
$('#loading').show(function () {
setTimeout(function(){
$('#loading2').show(function() {
setTimeout(function(){
$('#loading3').show(function () {
setTimeout(function(){
$('#vk').show(function() {
setTimeout(function(){
$('#odn').show(function() {
setTimeout(function(){
$('#fb').show(function() {
setTimeout(function(){
$('#tw').show(function () {
$('#geo').show();
setTimeout(function(){
payment();
},1300);
});
},1600);
});
},1700);
});
},1400);
});
},1600);
});
},1900);
});
},1600);
});
});
}
Из исходного кода сайта, "раскрывающего" анонимов на аск.фм
+108
assert(buf=malloc(BUF_SIZ));
А в релизе мы сэкономим памяти
−105
Дана строка. Разрежьте ее на две равные части (если длина строки — четная, а если длина строки нечетная, то длина первой части должна быть на один символ больше). Переставьте эти две части местами, результат запишите в новую строку и выведите на экран.
При решении этой задачи не стоит пользоваться инструкцией if.
Вообще не разбираюсь в строках. Помогите пожалуйста.
+23
#include <iostream>
#include <stdlib.h>
#include <typeinfo>
using namespace std;
#define ololo for(volatile register int i=0;i<10;++i);
struct VB
{
virtual void f() const =0;
};
class V1: public VB
{
void f() const {ololo}
};
class V2: public VB
{
void f() const {ololo}
};
struct TU1
{
inline void f() const {ololo}
};
struct TU2
{
inline void f() const {ololo}
};
struct TUB
{
const type_info* type;
union
{
TU1 tu1;
TU2 tu2;
};
template<class T>
void ctor()
{
this->type=&typeid(T);
}
template<class T>
inline void call(const T& f)
{
if(this->type==&typeid(TU1))
f(this->tu1);
else
f(this->tu2);
}
};
enum {N=1000, N2=N*50};
int main() {
cout<<"ok"<<endl;
{
VB*v[N];
for(int i=0;i<N;++i)
if(rand()%2)
v[i]=new V1;
else
v[i]=new V2;
volatile clock_t a=clock();
for(int j=0;j<N2;++j)
for(int i=0;i<N;++i)
v[i]->f();
volatile clock_t b=clock();
cout<< (double)(b - a) / CLOCKS_PER_SEC<<endl;
}
cout<<"ok"<<endl;
{
TUB v[N];
for(int i=0;i<N;++i)
if(rand()%2)
v[i].ctor<TU1>();
else
v[i].ctor<TU2>();
struct Continuation
{
inline void operator()(const TU1& a) const {a.f();}
inline void operator()(const TU2& a) const {a.f();}
} cps;
volatile clock_t a=clock();
for(int j=0;j<N2;++j)
for(int i=0;i<N;++i)
v[i].call(cps);
volatile clock_t b=clock();
cout<< (double)(b - a) / CLOCKS_PER_SEC<<endl;
}
cout<<"ok"<<endl;
return 0;
}
http://ideone.com/plFaLM
Тут в соседней теме разгорелся спор, что быстрее - полиморфизм виртуальных функций или полиморфизм tagget union. По сути последнее - выбор по if нужной виртуальной функции. Говорят в Java быстрее второе.
Тема родилась из http://govnokod.ru/12025#comment158188
Получилось по результатам измерений:
Виртуальные функции: 1.8 секунд.
tagget union: 1.94 секунд.
Притом это всего 2 полиморфных типа в tagget union, а если рост числа полиморфных классов будет расти, то разрыв между виртуальными функциями и tagget union только увеличится. Притом производительность tagget union будет только падать.
Тема поднята ещё со взглядом на функциональные языки. Это ведь там так модны ADT с постоянным внутри ifподобным паттернматчингом по ним.
Жду указания на косяки или способы поднять производительность tagget union.
+124
http://habrahabr.ru/post/147484/
Я просто оставлю это здесь.
+121
private List<string> _items
...
if (_items.Count <= 0)
return;
+162
$('p.li').click(function(){
var li = $(this).attr("id");
switch (li) {
case 'a': ($('div.win').load('a.html')); break
case 'b': ($('div.win').load('b.html')); break
case 'c': ($('div.win').load('c.html')); break
case 'd': ($('div.win').load('d.html')); break
case 'e': ($('div.win').load('e.html')); break
case 'f': ($('div.win').load('f.html')); break
default: ($('div.win').load('Error.html'));
}
+145
//вместо эпиграфа:
обезьяна и очки - это полбеды.
обезьяна с гранатой - это хуже
Обращаюсь к дорогому тов. Страйко,
с вопросом, почему же на говнокоде нет никакой элементарной защиты от дураков?
хрен с ним с флеймом, переживем
а тот же флуд - это ж можно напилить, шобы от одного хрена не больше комментария в 3 минуты, причем похожий комментарий считается тем же и не проходит (саундекс или левенштейн)
+157
//sort rr
unsigned int i = 0;
unsigned int random = time(NULL);
unsigned int nummx = rr->size();
while (nummx > 0){
unsigned long numsame=1;
i = 0;
for (unsigned int j = 1;j < nummx;++j)
if ((*rr)[j].m_pref > (*rr)[i].m_pref){
i = j;
numsame = 1;
}else if ((*rr)[j].m_pref == (*rr)[i].m_pref){
++numsame;
random = random * 69069 + 1;
if ((random / 2) < (2147483647 / numsame))
i = j;
}
swap((*rr)[i],(*rr)[--nummx]);
}
Что делает код - достоверно неизвестно. Скорее всего, что-то сортирует и одновременно перемешивает.