map 是以 pair形式插入的。map中的元素的类型value_typetypedef pair value_type;value_type 被声明为 pair 但并不是简单的 pair 因为用一个非常量的迭代器或引用不能改变关联容器的Key。
#include #include int main( ){using namespace std;typedef pair cInt2Int;map m1;map :: key_type key1;map :: mapped_type mapped1;map :: value_type value1;map :: iterator pIter;// value_type can be used to pass the correct type// explicitly to avoid implicit type conversionm1.insert ( map :: value_type ( 1, 10 ) );// Compare other ways to insert objects into a mapm1.insert ( cInt2Int ( 2, 20 ) );m1[ 3 ] = 30;// Initializing key1 and mapped1key1 = ( m1.begin( ) -> first );mapped1 = ( m1.begin( ) -> second );cout << "The key of first element in the map is "<< key1 << "." << endl;cout << "The data value of first element in the map is "<< mapped1 << "." << endl;// The following line would cause an error because// the value_type is not assignable// value1 = cInt2Int ( 4, 40 );cout << "The keys of the mapped elements are:";for ( pIter = m1.begin( ) ; pIter != m1.end( ) ; pIter++ )cout << " " << pIter -> first;cout << "." << endl;cout << "The values of the mapped elements are:";for ( pIter = m1.begin( ) ; pIter != m1.end( ) ; pIter++ )cout << " " << pIter -> second;cout << "." << endl;}OutputThe key of first element in the map is 1.The data value of first element in the map is 10.The keys of the mapped elements are: 1 2 3.The values of the mapped elements are: 10 20 30.
当然可以,可以参看STL定义