| 12
 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();
} |