1. C++ / Говнокод #12693

    +7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class Pa || Ra || Ll || El
    {  
       int f || o || o; // четвертое ядро простаивает - надо длиннее переменные заводить
       int b || a || r;
    }
    
    int m || a || i || n(int argc, CHAR* argv[])
    { 
        Parallel parallel = new Pa() || Ra() || Ll() || El ();
    }

    LispGovno, 05 Марта 2013

    Комментарии (14)
  2. C++ / Говнокод #12669

    +18

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    #include <iostream>
    #include <map>
    
    struct A { 
       const static int i = 10;
    };
    
    using namespace std;
    
    int main()
    {
       map<int, string> m;
       m[0] = "zero";
       m[A::i] = "A::i"; // Не везде работает
       cout << A::i << endl;
       return 0;
    }

    Недели stackoverflow на уютненьньком.
    Почему-то этот код не собирается в GCC 4.7.2, но при этом работает в 4.6.3 и 4.8.0.
    http://liveworkspace.org/code/2o5qOP$1
    http://liveworkspace.org/code/2o5qOP$2
    http://liveworkspace.org/code/2o5qOP$3

    absolut, 01 Марта 2013

    Комментарии (49)
  3. C++ / Говнокод #12668

    +27

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    //Определение рангов узлов
      NL1=NL2=0; int msKl1,kl1I1;
     M6: NL1=NL1+NL2; FormMS(NL1,MS); K9=NO-NL1; KSS=32767*32767*2;
      for(J=2;J<=K9;J++)
        {KS[J]=KU1[J]*(KU1[J]-1)/2;
         if(KS[J] != 0)
          {L6=KU2[J-1]+1; L8=KU2[J]; L7=L8-1;
           for(I1=L6;I1<=L7;I1++)
             {II2=I1+1; kl1I1=KL1[I1];
              for(I2=II2;I2<=L8;I2++)
                {msKl1=MS[KL1[I2]];
                 L61=KU2[msKl1-1]+1; L71=KU2[msKl1];
                 for(L=L61;L<=L71;L++)
                   {if(KL1[L] != kl1I1)goto M10;
                    else { KS[J]--; goto M9;}
               M10:;}
             M9:;}
             }
          }
          if(KS[J] < KSS) KSS=KS[J];
        }
    //=================

    куски кода какой-то очень древней расчетной программы. Радует форматирование

    mapron, 01 Марта 2013

    Комментарии (8)
  4. C++ / Говнокод #12664

    +8

    1. 1
    2. 2
    #define I_HATE_MACRO2(BEGIN__, END__) BEGIN__##END__
    #define CONCAT_MACRO(BEGIN__, END__) I_HATE_MACRO2(BEGIN__,END__)

    LispGovno, 28 Февраля 2013

    Комментарии (4)
  5. C++ / Говнокод #12649

    +19

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    std::vector<int> data;
    std::vector<int> indexes;
    
    // ...
    
    for (int i = 0; i < data.size(); ++i) {
    	if (data[i] == to_remove) {
    		indexes.push_back(i);
    	}
    }
    for (int i = 0; i < indexes.size(); ++i) {
    	data.erase(data.begin() + i);
    }

    "Эффективное" удаление элементов из вектора. Об <algorithm> человек не слышал...

    Cpp, 25 Февраля 2013

    Комментарии (24)
  6. C++ / Говнокод #12638

    +33

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    std::vector<int> data;
    	// ...
    	for (int i = 0; i < data.size(); ++i) {
    		int item = data.begin()[i];
    		// ...
    	}

    Cpp, 22 Февраля 2013

    Комментарии (110)
  7. C++ / Говнокод #12635

    +8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    //список строк
    QStringList rows_list = text.split("\n");
    
    uint32_t row=0;
    uint32_t col=0;
    for(QStringList::iterator itR=rows_list.begin(); itR!=rows_list.end(); itR++,row++)
    {
       QStringList columns_list=itR->split(";");
    
       col=0;
       for(QStringList::iterator itC=columns_list.begin(); itC!=columns_list.end(); itC++,col++)
       {
          //*itC,row,col
       }
    }

    Человек осилил итераторы в с++...
    (для тех, кто не в теме - QStringList имеет доступ по индексу за константное время)
    А еще мне нравятся uint32_t вместо int или, на худой конец, quint32.

    ABBAPOH, 22 Февраля 2013

    Комментарии (89)
  8. C++ / Говнокод #12631

    +17

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    class Test
    {
      public:
        Test() : f(&Test::f0), f0(&Test::f1), f1( &Test::f2 ) {}
        float (  Test::* const Test::* const Test::* const f)();
      private:
        float ( Test::* const Test::* const f0)();
        float ( Test::* const f1)() ;
        float f2() { return 0; }
    };
    
    Test t;
    cout << (t.*(t.*(t.*(t.f))))();

    LispGovno, 21 Февраля 2013

    Комментарии (9)
  9. C++ / Говнокод #12611

    +28

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if ( _It->m_sOpenText.substr( 0, 3 ) == "<tr" ||
    		 _It->m_sOpenText.substr( 0, 3 ) == "<th" ||
    		 _It->m_sOpenText.substr( 0, 3 ) == "<td" ||
    		 _It->m_sOpenText.substr( 0, 6 ) == "<thead" ||
    		 _It->m_sOpenText.substr( 0, 6 ) == "<tbody" ||
    		 _It->m_sOpenText.substr( 0, 6 ) == "<tfoot" ||
    		 _It->m_sOpenText.substr( 0, 8 ) == "<caption" ||
    		 _It->m_sOpenText.substr( 0, 4 ) == "<col" ||
    		 _It->m_sOpenText.substr( 0, 9 ) == "<colgroup" )
    		return; // TODO: я пишу ТАКОЙ код, убейте меня...

    Продолжаем неделю свитчей  — HTML-препроцессор!

    Yuuri, 19 Февраля 2013

    Комментарии (18)
  10. C++ / Говнокод #12610

    +80

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    /* Попытка обьединить четыре  цикла в один.
    	Первый - Присвоение элементам массива значения.
    	Второй - Поиск минимального значения.
    	Третий - Поиск максимального значения.
    	Четвертый - Вывод содержимого массива.
    */
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    int main()
    {
    	int array[100];
    	int flag;
    	int min = 0;
    	int max = 0;
    
    	for (flag=0;flag<100;flag++){					   
    		array[flag]=rand();
    		
    		if ( ! min && ! max){	   //Инициализация переменных, для первой итерации.
    		max = array[0];
    		min = array[0];
    		}
    
    		if (array[flag] >=max) max = array[flag];
    		
    		if (array[flag] <= min) min = array[flag];
    		
    		cout << array[flag] << "\n";
    	}
    	
    	cout << "\nМаксимальное значение: " << max;	
    
    	cout << "\nМинимальное значение: "  << min << '\n';
    	
    	return 0;
    }

    Писал я, пытаясь переделать пример из книжки, в котором для этой же задачи использовалось 4 цикла.
    Просьба обьективно обгадить сей код, дабы мне было над чем подумать.

    P.S только учусь.

    shim, 18 Февраля 2013

    Комментарии (41)