std::map<double, int> map_test;
{
double a1 = 0.12;
double a2 = 0.12;
double a3 = 0.19;
std::map<double, int>::iterator it;
if ( (it = map_test.find(a1)) != map_test.end() )
{
(*it).second ++;
}
else map_test.insert( make_pair(a1, 0) );
if ( (it = map_test.find(a2)) != map_test.end() )
{
(*it).second ++;
}
else map_test.insert( make_pair(a2, 0) );
if ( (it = map_test.find(a3)) != map_test.end() )
{
(*it).second ++;
}
else map_test.insert( make_pair(a3, 0) );
}
cout << map_test.size() << endl;
for ( map<double,int>::iterator it = map_test.begin(); it != map_test.end();
++ it )
{
cout << it->first << " " << it->second << endl;
}
map<double, int> map_test2;
map_test2.insert( make_pair(13.1, 13));
map_test2.insert( make_pair(14.1, 23));
map_test2.insert( make_pair(15.1, 33));
map_test2.insert( make_pair(16.1, 43));
map_test2.insert( make_pair(17.1, 53));
// 取最后一个元素
reverse_iterator<std::map<double, int>::iterator> it_reverse = map_test2.rbegin();
cout << it_reverse->first << " " << it_reverse->second << endl ;
/
struct DataPoint
{
DataPoint(double in_x, double in_y ) : x(in_x), y(in_y) {}
double x;
double y;
};
map<double, vector<DataPoint> > test_map;
vector<DataPoint> dataPoints;
dataPoints.push_back(DataPoint(10, 23));
dataPoints.push_back(DataPoint(11, 22));
dataPoints.push_back(DataPoint(14, 21));
test_map.insert( make_pair(.89, dataPoints));
map<double, vector<DataPoint> >::iterator it_look = test_map.find(0.89);
if ( it_look != test_map.end() )
{
it_look->second.push_back( DataPoint(89, 98));
}
map<double, vector<DataPoint> >::iterator it = test_map.begin();
for ( ; it != test_map.end(); ++ it )
{
vector<DataPoint> & dataPoints = it->second;
for ( int nPos= 0; nPos < dataPoints.size(); nPos ++ )
{
cout << dataPoints[nPos].x << " " << dataPoints[nPos].y << endl;
}
}