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

    0

    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
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    #include "stdafx.h"
    #include<iostream>
    #include<map>
    #include<set>
    #include<string>
    #include<fstream>
    #include<iomanip>
    #include<algorithm>
    //#include<algorithm>
    using namespace std;
    int main()
    {
    	
    	setlocale(LC_ALL, "Russian");
    	multimap<string, int> mp;
    	multimap<string, int>::iterator it;
    	multimap<string, int>::iterator mit;
    	pair<multimap<string,int>::iterator, multimap<string, int>::iterator> pt;
    	set<int>nset;
    
    	string word;
    	char c = ' ';
    	
    
    	char s[256];
    	fstream inOut;
    	inOut.open("text.txt", ios::in);
    	for (int i = 1; i < 500; i++) {
    		inOut.getline(s, 256);
    	
    		char* pch;
    		pch = strtok(s, " ,-:");
    		while (pch != NULL) {
    			word = string(pch);
    			transform(word.begin(), word.end(), word.begin(), ::tolower);
    			mp.insert(pair <string, int>(word, i));
    			//cout « pch «'\t'«i« endl;
    			pch = strtok(NULL, " ,-:");
    		}
    	}
    	inOut.close();
    
    
    
    
    
    	set<string>set;
    
    	string tmp;
    
    	for (mit = mp.begin(); mit != mp.end(); mit++) {
    		tmp = (*mit).first;
    		if (set.find(tmp) != set.end()) {
    			continue;
    		}
    		else {
    
    			set.insert(tmp);
    			cout<<setw(15) << tmp << '\t';
    			pt = mp.equal_range(tmp);
    			
    			for (it = pt.first; it != pt.second; ++it) {
    				nset.insert(it->second);
    				
    			}
    			//cout << nset.size() << "     ";
    			for (it = pt.first; it != pt.second; ++it) {
    				
    				cout << it->second << ' ';
    			}
    			nset.clear();
    			cout << endl;
    		}
    	}
    	system("pause");
    	return 0;
    }

    Программа считывает слова сортирует и выдаёт все номера строк где данное слово встречается

    Запостил: ArthurMakaev, 10 Апреля 2018

    Комментарии (68) RSS

    • Выёбвшся? Для кого grep придумали?
      Ответить
    • Прелестный пример странного ЯП под названием "C/C++". Въебал плюс.
      Ответить
    • //#include<algorithm> // раскомментировать, если понадобится еще какой-нибудь include
      Ответить
    • > все номера строк
      > for (int i = 1; i < 500; i++)
      Не все.
      Ответить
      • >inOut.getline(s, 256);
        строки тоже, судя по всему, не любые могут быть
        накидал вот от нечего делать, возможно даже работает, хоть и медленнее: https://ideone.com/97ZXk3
        Ответить
        • А sorted разве выбросит дубликаты (если несколько одинаковых слов в строке)?
          Ответить
          • sorted просто возвращает отсортированный писок и ничего не выбрасывает.

            > возможно даже работает
            НИХРЕНА НЕ РАБОТАЕТ!
            Ответить
            • А нет, работает, это всё сраные отступы в Python. Ну почему бы их просто не игнорировать в пустой строке?
              Ответить
          • показать все, что скрытоВ делфи то же самое. Установка свойства Sorted списка в True вызывает процедуру сортировки, не более.
            Ответить
          • нет, но в условии этого и не требовалось. исходный код вроде тоже учитывает все вхождения во одной строке. если надо, то легко решается заменой words на defaultdict(set) и append на add
            Ответить
    • показать все, что скрыто@char* pch;
      pch = strtok(s, " ,-:");

      А что, строк вообще нет? Голые указатели?
      Ответить
    • set<string>set
      
      =ϵ⭕϶=
      Ответить
      • Блеать! Упоротый C++, эта хуйня еще и работает. А что, если потом понадобится объявить еще один сет? Зачем так вообще можно?
        Ответить
        • https://ideone.com/6xXEKK
          Ответить
          • Блеать! Упоротый Си, эта хуйня еще и работает. А что, если потом понадобится объявить еще одну переменную этого типа? Зачем так вообще можно?
            Ответить
            Ответить
            • Ответить
              Ответить
              • vistefan 40 минут назад #
                Ответить

                Ответить
                Ответить
                • Хм, на ГК 4 размера текста что ли? Всегда думал, что 15 - эквивалент обычного размера, но он от него отличается.

                  Ответить
                  Ответить
                  Ответить
                  Ответить
                  Ответить
                  • Экв обычного вроде бы 20
                    Ответить
                    • В моём браузере вроде 16. И если крутить настройки шрифта, ГК размер не меняет. В итоге имеем 10, 15, 16, 20.
                      Ответить
                      • различаю только 10 и 20
                        Ответить
                        • Попробуйте приложить более точную линейку (Elements/Styles/Computed или Inspector/Computed в браузере).
                          Computed font-size совпадает с наблюдаемым.
                          Ответить
                  • Интересно.
                    Интересно.
                    Ответить
                • shit только что #
                  Ответить
            • > Зачем так вообще
              почему кот яйца лижет?

              > если потом понадобится объявить еще одну переменную этого типа
              когда ты понимаешь, что в язык уже 40 лет назад заложили возможность последний раз в скоупе объявить переменную с неким типом - это же более синглтон, чем синглтон в сраной куче! - сразу столько перспектив открывается
              Ответить
              • А, ну ладно, но я ни разу этой хёй не пользвлся
                Ответить
                • это была шутка, если чо
                  правильный ответ - так сложилось уже изначально и всем насрать
                  зачем ломать совместимость, ради чего, мистер андерсон?
                  просто не пользуйся и другим не советуй
                  Ответить
                  • Бля, уже успел почуствовать себя говном
                    Ответить
                    • :)

                      [:-)]
                      Ответить
                      • [list]
                        [*] Пункт 1.
                        [*] Пункт 2.
                        [*] Пункт 3.
                        [/list]

                        Некоторые движки позволяют записывать «*» вместо «[*]».

                        [list]
                        * Пункт 1.
                        * Пункт 2.
                        * Пункт 3.
                        [/list]
                        Ответить
                  • [url]https://i.ytimg.com/vi/7mk6l2miAzQ/hqdefault.jpg[/url[]
                    Ответить
            • > понадобится объявить еще одну переменную
              Ну это же std::set, вот по полному имени и заюзаешь.

              Блин, надо сначала код читать, а потом писать комменты.
              Ответить
        • > понадобится объявить ещё один set
          Ну это же std::set, вот по полному имени и заюзаешь.
          Ответить
      • =ϵ⭕϶=

        Goatse?
        Ответить
      • set меньше, чем (string больше set).
        Ответить
      • Текст
        Ответить

    Добавить комментарий