Re: stl way of checking 2 lists for dups/additions/removals
"bg" <bg@bg.com> wrote in message
news:%23MnBfVfyHHA.4640@TK2MSFTNGP03.phx.gbl
If I have two vectors, A and B, both containing a bunch of unsorted
names, with B being a superset of the names in A, what algorithm
would I use to find all the ones that were in B one but not A?
Sort both, then use set_difference. Actually, it's sufficient to sort A,
then scan over B and do binary search in A.
Obviously I can do it myself, but I thought the was an algorithm in
the STL lib somewhere.
No, as far as I can tell, there is no algorithm that would do exactly
what you want in one step. You might be thinking of set_difference, but
it requires that the two sequences be sorted. With unsorted sequences,
you can't do better than O(N^2), so there's little point in a special
algorithm - just run two nested loops. If you want to get fancy, use
find_first_of in a loop.
--
With best wishes,
Igor Tandetnik
With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925