Boost logo

Boost :

From: Pavol Droba (droba_at_[hidden])
Date: 2005-03-24 11:25:21

On Thu, Mar 24, 2005 at 09:27:51AM -0600, Michael Goldshteyn wrote:
> Given:
> typedef std::deque<char> DequeString;
> std::string s("Hello sweet world!");
> std::string word("sweet");
> DequeString dequeString;
> // Copy "Hello sweet world!" into the deque string
> std::copy(s.begin(),s.end(),std::back_inserter(dequeString));
> // Now, I want to find where "sweet" appears in the dequeString. An iterator
> to its location would be fine.
> // This doesn't quite do it, since it looks for _any_ occurrence of a
> character from word in dequeString
> std::find_first_of(dequeString.begin(),dequeString.end(),word.begin(),word.end());
> // But, I want to find where _the whole_ word occurs in dequeString, similar
> to how std::string::find() does it:
> std::string::size_type wordPos=s.find(word);
> Is there something in boost or the standard C++ lib that can be used?
> Thanks,
> Michael Goldshteyn

Hi Michael,

You should have a look into The String Algorithm Library. Algorithm find_first() does exactly what you
want. It works with any sequential std container.

For documentation see:

Specificaly the find_first algorith:



Boost list run by bdawes at, gregod at, cpdaniel at, john at