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
| #include <map>
#include <algorithm>
#include <iostream>
using namespace std;
typedef map<int, char*> MItem;
MItem mItem;
void DeleteSecond( MItem::value_type& p ) {
delete[] p.second;
}
void Display( MItem::value_type& p ) {
cout << p.first << ":" << p.second << endl;
}
int main()
{
for( int i = 0; i < 10; ++i ) {
mItem[i] = new char[50];
strcpy( mItem[i], "BONJOUR" );
}
for_each( mItem.begin(), mItem.end(), Display );
for( int i = 0; i < 5; ++i ) {
delete[] mItem[i]; mItem.erase(i);
}
for_each( mItem.begin(), mItem.end(), Display );
for_each( mItem.begin(), mItem.end(), DeleteSecond );
mItem.clear();
} |