Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ > Re: STL set/map...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 4 of 17 Topic 45770 of 47032
Post > Topic >>

Re: STL set/map w.r.t const char*

by dizzy <dizzy@[EMAIL PROTECTED] > May 6, 2008 at 12:48 PM

S S wrote:

> Hi
> 
> I have a very basic question, but it's a good one. Below is the code
> fragment.
> 
> struct ltstr
> {
>   bool operator()(const char* s1, const char* s2) const
>   {
>     return strcmp(s1, s2) < 0;
>   }
> };
> 
> int main()
> {
>   const int N = 6;
>   const char* a[N] = {"isomer", "ephemeral", "prosaic",
>                       "nugatory", "artichoke", "serif"};
>   set<const char*, ltstr> A(a, a + N);
>   if (A.find("ephemeral") != A.end())
>     cout << "Found";
>   else
>     cout << "Not found";
>   return 0;
> }
> 
> Output will be -> "Found"
> My question is , Why?
> 
> How it is able to compare a const char* with another const char* to
> find that value? 

By using your provided predicate.

> I did not specify any equality operator? 

It does not need to. And btw, it does not want to find equality, it wants
to
find "equivalence", any good stdlib book will describe the difference
between the two. Basically, you check for equality with op==/!= and you
check for equivalence with an expression like iff (!(arg1 < arg2) &&
!(arg2
< arg1)) then arg1 and arg2 are equivalent for your given order predicate.

> I just  
> mentioned strcmp(s1, s2) < 0
> which means, when strcmp(s1, s2) == 0 (in case of match)
> it will return false. So how set/map are able to find the const char*
> value?

See above.

-- 
Dizzy
 




 17 Posts in Topic:
STL set/map w.r.t const char*
S S <sarvesh.singh@[EM  2008-05-06 02:28:00 
Re: STL set/map w.r.t const char*
"Jim Langston"   2008-05-06 02:38:48 
Re: STL set/map w.r.t const char*
Ian Collins <ian-news@  2008-05-06 21:45:25 
Re: STL set/map w.r.t const char*
dizzy <dizzy@[EMAIL PR  2008-05-06 12:48:27 
Re: STL set/map w.r.t const char*
Ian Collins <ian-news@  2008-05-06 21:58:20 
Re: STL set/map w.r.t const char*
S S <sarvesh.singh@[EM  2008-05-06 03:34:07 
Re: STL set/map w.r.t const char*
S S <sarvesh.singh@[EM  2008-05-06 03:34:45 
Re: STL set/map w.r.t const char*
Ian Collins <ian-news@  2008-05-06 23:02:48 
Re: STL set/map w.r.t const char*
S S <sarvesh.singh@[EM  2008-05-06 03:38:11 
Re: STL set/map w.r.t const char*
Ian Collins <ian-news@  2008-05-06 23:04:47 
Re: STL set/map w.r.t const char*
S S <sarvesh.singh@[EM  2008-05-06 04:01:55 
Re: STL set/map w.r.t const char*
S S <sarvesh.singh@[EM  2008-05-06 04:21:30 
Re: STL set/map w.r.t const char*
dizzy <dizzy@[EMAIL PR  2008-05-06 15:48:36 
Re: STL set/map w.r.t const char*
James Kanze <james.kan  2008-05-06 05:28:54 
Re: STL set/map w.r.t const char*
terminator <farid.mehr  2008-05-06 07:25:33 
Re: STL set/map w.r.t const char*
S S <sarvesh.singh@[EM  2008-05-06 08:10:32 
Re: STL set/map w.r.t const char*
"Andrew Koenig"  2008-05-07 19:10:49 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Jul 25 15:48:15 CDT 2008.