map with const char*
Apr 13, 2011 at 1:45pm UTC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
#include <iostream>
#include <map>
int main()
{
GetName1();
const char *c ="vivek" ;
GetName2();
return 0;
}
char * GetName1()
{
if ( languageName == NULL )
return NULL;
std::map<const char *, const char *> strstrMap;
std::map<const char *, const char *>::iterator it;
strstrMap["vivek" ] = "kumar" ;
strstrMap["manish" ] = "sharma" ;
strstrMap["nihar" ] = "panda" ;
strstrMap["md" ] = "alam" ;
strstrMap["arun" ] = "vir shing" ;
strstrMap["Narayan" ] = "sultania" ;
strstrMap["Rudresh" ] = "Pandy" ;
strstrMap["amit" ] = "birla" ;
strstrMap["anonymous" ] = "" ;
strstrMap["English: UK" ] = "yep" ;
const char *f = "nihar" ;
it = strstrMap.find(f );
if (it1 == strstrMap.end())
{
//alert
}
}
char * GetName2(const char * languageName)
{
if ( languageName == NULL )
return NULL;
std::map<const char *, const char *> strstrMap;
std::map<const char *, const char *>::iterator it;
strstrMap["vivek" ] = "kumar" ;
strstrMap["manish" ] = "sharma" ;
strstrMap["nihar" ] = "panda" ;
strstrMap["md" ] = "alam" ;
strstrMap["arun" ] = "vir shing" ;
strstrMap["Narayan" ] = "sultania" ;
strstrMap["Rudresh" ] = "Pandy" ;
strstrMap["amit" ] = "birla" ;
strstrMap["anonymous" ] = "" ;
//const char *f = "nihar";
it = strstrMap.find(languageName );
if (it1 == strstrMap.end())
{
//alert
}
}
I am getting bit strange result in both this case above.
In case 1:
when I am passing f in find() function which is define in this function then in the result I am getting valid iterator and it showing the exact result.
In case 2:
when I am passing languageName(which is having "vivek" or any cstring in that map) in find() function in that case I am not able to get the valid iterator value.
After doing lot of debugging I have to know this behavior. Please let me know the exact reason.
Thanks a lot.
Apr 13, 2011 at 1:59pm UTC
Replace GetName2();
with GetName2(c);
in main.
Topic archived. No new replies allowed.