STL / iterator / map - I dont get it
Hi all,
I am doing something terrible wrong, but I dont understand why!
Maybe I am sitting too long in front of this box!
This is a breakdown of some code:
#include <map>
class MyMap : public std::map< double* , int > { };
MyMap test;
void findMyDouble(double* d)
{
MyMap::iterator iter;
for( iter = test.begin(); iter != test.end(); ++iter)
{
if(*iter->first == 2.0)
{
//assign t2 to d
d = iter->first;
// d == t2
// *d == 2.0
// okay until here
break;
}
}
}
int main(int argc, char** argv)
{
double* t1 = new double(1.0);
double* t2 = new double(2.0);
double* t3 = new double(3.0);
test.insert(MyMap::value_type(t1,10));
test.insert(MyMap::value_type(t2,11));
test.insert(MyMap::value_type(t3,12));
double* search;
findMyDouble(search);
//search should be:
//search == t2!
//*search == 2.0
//but search is again not defined
MyMap::reverse_iterator iter;
for( iter = test.rbegin(); iter != test.rend(); ++iter)
delete iter->first;
return 0;
}
I need to extract some map-key, which is a pointer.
The key is the pointer-itself, but i have to find a specific pointer-
value.
in the local scope of findMyDouble everything is okay, but in main
nothing happens at all.
Thanks for help for a tired cpp-victim.