ulidtko 01.08.2012 18:14

Вот есть у меня такой код.

Foo* FooBar::FindEgg(Baz baz)
{
iterator founditem = std::find_if(eggs.begin(), eggs.end(),
bind2nd(ptr_fun(isEggSpam), baz)
);

if (founditem == eggs.end())
return (NULL);
else
return (*founditem);
}

Ну, норм. Но подождите, мне нужно поменять направление поиска, смотреть с конца. При этом мне как бы не хочется менять ВСЁНАХУЙВОКРУГ из-за того, что тип итератора поменяется. В итоге я пишу:

Foo* FooBar::FindEgg(Baz baz)
{
iterator founditem = std::find_if(eggs.rbegin(), eggs.rend(),
bind2nd(ptr_fun(isEggSpam), baz)
).base();

if (founditem == eggs.end())
return (NULL);
else
return (*founditem);
}

Обращаем внимание на rbegin-rend и base() http://en.cppreference.com/w/cpp/iterato...

Заебись
?

Хуй!

.base() возвращает итератор на позицию правее, чем нужно. Потому что
> For a reverse iterator r constructed from an iterator i, the relationship &*r == &*(i-1) is always true; thus a reverse iterator constructed from a one-past-the-end iterator dereferences to the last element in a sequence.

Причём это я всё понимаю, хорошо сделали. Но блядь... ошибки off-by-one в моём итераторном «алгоритмичном™» коде?! Пиздец, STL, ты сука огребаешь, я иду переписывать всё циклами.

Recommended by: @magog, @richmond, @rapture
1. 0xd34df00d 01.08.2012 18:16 Aedalus

Да ты мудак же. Почему бы не сравнить с rend()?

2. magog0xd34df00d /1 01.08.2012 18:16 Azoth

ох...

3. 0xd34df00dmagog /2 01.08.2012 18:16 Aedalus

Што.

4. magog0xd34df00d /3 01.08.2012 18:17 Azoth

блин, не тебе. Это опу шло

5. ulidtko0xd34df00d /1 01.08.2012 18:17

вообще охуеть: менять тест «нашлось ли там чего» в зависимости смены направления поиска. Пиздец.

6. 0xd34df00dulidtko /5 01.08.2012 18:17 Aedalus

base() же ты прикрутил, вот считай это сменой также.

7. ulidtko0xd34df00d /6 01.08.2012 18:18

а это я уже прикрутил в ту же строку как бы ;]

8. Zato-Niulidtko /5 01.08.2012 18:18

По-моему, логично. Это же совершенно разные итераторы.

9. 0xd34df00dulidtko /7 01.08.2012 18:19 Aedalus

Че, какую строку? Питон настолько шоле мозг разжижает? :3

10. ulidtkoZato-Ni /8 01.08.2012 18:19

а по-моему, нихуя не логично. Каким хуем проверка успешности поиска должна синтаксически зависеть от его направления?

Даже bool found = false; логичнее блядь.

12. magogulidtko /10 01.08.2012 18:21 Azoth

ты не прав. Тут же все логично

13. 2538 01.08.2012 18:21 tertium datur

ебать, на этом живые люди пишут?

14. 238328 01.08.2012 18:21 3935621841343840597335202

используй пастобин, шлюха

15. ulidtko238328 /14 01.08.2012 18:22

саси

16. magog238328 /14 01.08.2012 18:22 Azoth

питонобляди не знаю про пастобин

17. 238328magog /16 01.08.2012 18:22 3935621841343840597335202

да, а еще он считать не умеют, и считают матан чем-то сверхъестественным

18. ulidtkomagog /12 01.08.2012 18:23

ну, я даже не знаю, как возражать на такие замечания. Логично? Да, логично.

А переименовывать плагины, чтобы они в правильном порядке загружались — логично? Ещё бы!

19. eurekafag 01.08.2012 18:24 Home

Сливаешь авидовский корпоративный код? Ц-ц-ц.

20. 238328ulidtko /15 01.08.2012 18:24

анус себе сасай, лолка

21. ulidtko238328 /17 01.08.2012 18:24

а ещё питонобляди сосут хуи и ебутся в жопу
!

22. magogulidtko /18 01.08.2012 18:24 Azoth

ну я не понимаю, чего ты уперся. У тебя совершенно 2 разных итератора, которые указывают на совершенно разные места.

23. 2538ulidtko /18 01.08.2012 18:25 tertium datur

зачем мне нужен алгоритм сортировки, нет времени чтобы ебаться с ним

24. ulidtkomagog /22 01.08.2012 18:25

пиздец блядь, мне ПОХУЙ что там за итераторы, я хочу надёжно тырпрайзно найти элемент в коллекции блядь

25. 238328ulidtko /18 01.08.2012 18:25 3935621841343840597335202

у каждого инструмента есть свои недостатки, твои буггурты были описаны уже сто раз 20 лет назад, просто смирись и жуй иногда говно дальше

26. ulidtko2538 /23 01.08.2012 18:26

вот именно, а зачем мне нужны нормальные удобные итераторы?
у меня нет времени чтобы ебаться с ними!

лучше пойду ещё раз напишу цикл.

27. magogulidtko /24 01.08.2012 18:26 Azoth

ты и нашел. В чем проблема? Зачем использую r-итераторы ты сраваниешь их с обычными итераторами?

28. ulidtko238328 /25 01.08.2012 18:26

саси [2]

29. 238328ulidtko /26 01.08.2012 18:26 3935621841343840597335202

и что в цикле плохого? :cf: Сишники бы тебя сейчас обоссали

30. ulidtkomagog /27 01.08.2012 18:27

> ты и нашел. В чем проблема?

ты тупой что ли, до конца не смог дочитать?
Off-by-one ошибка возникла — вот в чём проблема.

31. 238328ulidtko /28 01.08.2012 18:27 3935621841343840597335202

анус себе сасай, лолка [2]
CTRL-F cacu found this — upboats
DAE using this gem → python SO BRAVE

32. magogulidtko /30 01.08.2012 18:27 Azoth

сравни с rend ()

33. ulidtko238328 /29 01.08.2012 18:28

да я вот всё жду набега @gelraen с расстёгнутой ширинкой.

34. ulidtkomagog /32 01.08.2012 18:29

... и заодно напиши ещё один тайпдеф для std::reverse_iterator<std::vector<Foo*>::iterator>, это же так легко и удобно!

35. magogulidtko /34 01.08.2012 18:30 Azoth

ну сделай, если он тебе нужен. Не вижу проблемы

36. ulidtkomagog /35 01.08.2012 18:30

=__________\\\\

37. ulidtkomagog /35 01.08.2012 18:31

я тебе сделаю небольшой хинт, ПОЧЕМУ ты не видишь проблемы: попробуй пописать на других, УДОБНЫХ языках.

38. 0xd34df00dulidtko /34 01.08.2012 18:32 Aedalus

man auto, man decltype

39. 0xd34df00dulidtko /37 01.08.2012 18:32 Aedalus

Пописываю на хацкеле, проблемы все равно не вижу.

40. ulidtko0xd34df00d /38 01.08.2012 18:33

ты правда думаешь, что я не ждал этого ответа?

41. 0xd34df00dulidtko /40 01.08.2012 18:33 Aedalus

Ну вдруг ты НЕ ЗНАЛ?

42. 238328ulidtko /37 01.08.2012 18:33 3935621841343840597335202

тебе тут с парашы докладывают, я тебе переведу: "Ты не достаточно погрузился в это говно"

43. magog0xd34df00d /38 01.08.2012 18:33 Azoth

разговаривать с питоноблядью, у которой порван анус от того, что есть языки, в которых нужно думать — бесполезно

44. 0xd34df00dmagog /43 01.08.2012 18:34 Aedalus

s/, у которой порван анус от того, что есть языки, в которых нужно думать//

45. 238328magog /43 01.08.2012 18:34 3935621841343840597335202

ну и на каком таком языке из этих ты писал?

46. ulidtko0xd34df00d /39 01.08.2012 18:34

на хацкеле у тебя тоже вокруг переворачиваются анрилейтед операторы, когда ты меняешь list на (reverse list) ?

47. 2538magog /43 01.08.2012 18:34 tertium datur

ты когда строишь предложения много думаешь? или лучше думать над задачей/тезисом?

48. magog2538 /47 01.08.2012 18:35 Azoth

много думаю.

49. ulidtkomagog /43 01.08.2012 18:35

> языки, в которых нужно думать
господи, как это мило

50. 2538magog /48 01.08.2012 18:35 tertium datur

типа "бля, вот тут сказууууемое, а тут, матерное междометие, и потом, в конце, термин который я прочитал вчера на рекламном щите"

51. 0xd34df00dulidtko /46 01.08.2012 18:36 Aedalus

Нет, там приходится пердолиться в тайпчекер :3

52. 0xd34df00d2538 /50 01.08.2012 18:37 Aedalus

Питон в этих терминах — «агу-агу».

53. ulidtko0xd34df00d /51 01.08.2012 18:37

а в плюсах вдвойне удобно! можно и пердолиться с типами, и перехуячивать итераторный код!

54. ulidtko0xd34df00d /52 01.08.2012 18:37

s/агу-агу/KoKoKo/

55. 25380xd34df00d /52 01.08.2012 18:38 tertium datur

мааааа, ууууугли

56. 0xd34df00dulidtko /54 01.08.2012 18:38 Aedalus

Петушатне виднее :3

57. ulidtko0xd34df00d /56 01.08.2012 18:43

на самом деле, если уж сравнивать, то питон ближе к русскому: на нём просто говоришь, и матерное кряканье просто работает. Только если запятую проебёшь — набегут граммарнаци и закидают трейсбеками.

Хачкель — латынь какая-то наверно. Тоже просто работает, но заебёшься с грамматикой и кривой осиливания.

А для плюсов у меня нет аналогии. Нормальные люди не настолько говноеды, чтобы использовать что-нибудь подобное для общения.

58. 238328ulidtko /57 01.08.2012 18:44 3935621841343840597335202

это называется "исполняемый псевдокод". Создан был специально министерством обоорны США для обучения обезьян, а потом пролоббирован на уровне мирового провительства как еще одно хобби для _фотографов_ю

59. ulidtko238328 /58 01.08.2012 18:45

для географов и биологов

60. 238328ulidtko /57 01.08.2012 18:45 3935621841343840597335202

а вообще русский язык соснул, есть более годные естественные языки

61. ulidtko238328 /60 01.08.2012 18:45

точно, украинский и правда полущ :3

62. 238328ulidtko /61 01.08.2012 18:46 3935621841343840597335202

не читал, но осуждаю, потому что такой же русский, но с увеличенными недостатками

63. ulidtko238328 /62 01.08.2012 18:46

нихуя не такой же, бро, я говорю тебе это

64. 238328ulidtko /63 01.08.2012 18:46 3935621841343840597335202

как у вас на украинском будет слово "компьютер"?

65. ulidtko238328 /64 01.08.2012 18:47

«обчислювач» :3 :3 :3

66. 238328ulidtko /65 01.08.2012 18:47 3935621841343840597335202

оооооооооооооооооооооооооок

67. ulidtko238328 /66 01.08.2012 18:47

а как будет на английском «компьютер»?

вот видишь.

68. 238328ulidtko /67 01.08.2012 18:47 3935621841343840597335202

iPad

69. 2538ulidtko /57 01.08.2012 18:49 tertium datur

клингонский :)

70. DZhon 01.08.2012 19:13

>>bind2nd

Легаси какое-то, ну.

71. 0xd34df00dDZhon /70 01.08.2012 19:52 Azoth_primary

Какой улидтко, такой и код :3

72. ulidtkoDZhon /70 01.08.2012 19:53

:( здесь vc9 пока, десу~

73. 0xd34df00dulidtko /72 01.08.2012 19:53 Azoth_primary

Да ты же ГОВНОЕД.

74. ulidtko0xd34df00d /71 01.08.2012 19:53

блядь, ну а я то-то причём :(

75. ulidtko0xd34df00d /73 01.08.2012 19:53

я б удовольствием лямды, range for, auto хуячил вместо всего этого говна, но.

76. 0xd34df00dulidtko /74 01.08.2012 19:53 Azoth_primary

#tzeosz+ , ну и ваще твои недавние посты.
Олсо, набигай в c_plus_plus@cjr, у нас там своя атмосфера, будем тепло и ласково чмырить :3

77. ulidtko0xd34df00d /73 01.08.2012 19:55

вы меня в натуре доебёте, и превращусь в дорфе, рассказывающего о циклах и стле. Хотите этого?

78. ulidtko0xd34df00d /76 01.08.2012 19:56

мм, ну я попробую.

Меня просто плюсовые итераторы делают блевать, срсли.

79. 0xd34df00dulidtko /77 01.08.2012 19:56 Azoth_primary

Лол.

80. 0xd34df00dulidtko /78 01.08.2012 19:56 Azoth_primary

Рейнджи полущ, да.

81. DZhonulidtko /72 01.08.2012 20:03

std::tr1::bind хотя бы уж

82. DZhonulidtko /77 01.08.2012 20:04

Улидтко превращается в гейдева!

83. kbmagog /16 02.08.2012 08:32

у нас просто паст.пуку.орг закрыли

Do you really want to delete ?