Wpis z mikrobloga

via Wykop Mobilny (Android)
  • 0
Czemu te wbudowane find w stringu i inne gówna nie zwracają iteratora?

Znajduje sobie substringa w stringu i chce zwrócić iterator na jego pierwszego chara, żeby dalej moc iterowac. Jak mam to wykonać?

Przez std::find w algorithm? Wywala mi się to jak mam coś takiego:

str1 = "coś c--j hshshs"
str2 = "c--j"

std::find(str1.begin(), str1.end(), str2) i nie działa

#cpp
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 0
@Arkadio88: @robko: @copego: dobra dzieki za pomoc, błąd byl w czymś innym. Po prostu parsuje xmla na szybko i cudzysłowów tak łatwo nie zalapuje mimo że używam "/" przed nim.
Nie chce używać tamtej g---o biblioteki z boosta.
  • Odpowiedz
@robko:

A dlaczego masz w pętli i < str1.cend() zamiast i != str1.cend()?

To jest poprawne?


@copego: Dlatego, że pisałem to na szybko i nie podumałem ( ͡º ͜ʖ͡º). Racja, lepiej dać != to wtedy zadziała dla każdego rodzaju iteratora.
  • Odpowiedz
@copego: nie, to koncept(dostępność właśnie operator<, możliwość odejmowania iteratorów w czasie stałym, możliwość przeskoczenia kilku elementów w czasie stałym, itp.). kontenery ciągle w pamięci mają contiguous iteratory(które są random access + mają ciągłą pamięć). przykładem nieciągłego random access jest deque
  • Odpowiedz