ideas icon indicating copy to clipboard operation
ideas copied to clipboard

Добавить для std::string метод count()

Open IllidanSR opened this issue 2 years ago • 1 comments

Часто бывает нужно проверить есть ли в строке определённая подстрока, вернув количество вхождений. Во многих языках для строк существует метод .count(patter) возвращающий количество вхождений подстроки в строке. В C++ есть std::count, но он работает только с char в качестве паттерна, что выглядит не совсем подходящим. Предложение: добавить в класс string метод count принимающий в качестве аргумента паттерн поиска и возвращающий количество вхождений паттерна в строку

IllidanSR avatar Dec 06 '21 10:12 IllidanSR

У этой задачи слишком много возможных решений с разными трейдоффами, чтобы дать Единственно Правильное. Если длина строки n, длина паттерна m, например:

Если сделать простой перебор, то это мало кому понравится. А в "быстрых" алгоритмах надо откуда-то взять память.

+ непонятно, считать ли за "вхождение" перекрывающиеся строки, т.е.

"ababa".count("aba"); // вернет 1 или 2?

Izaron avatar Dec 27 '21 14:12 Izaron