Question:
Given a string where words are separated by spaces and colons. It is necessary to count the number of words less than k in length and return a container of these words. It is forbidden to use loops, only STL algorithms and containers are allowed. There is not even an idea of how all this can be done. I would at least have an idea.
Answer:
The solution may not be optimal, but still: Write the following recursive function: Search with std::find()
in the string for a colon or a space, found – with std::substr()
take all the substring before this character if its length is less than k
, push_back()
it into a vector. Remove this colon / space from the original line. Then call this function again if the length of the string is> 0. True, on large strings this, most likely, will not pass in time (you can try to cache the function, this greatly speeds up the process).