map::insert
| Код | // map_insert.cpp // compile with: /EHsc #include <map> #include <iostream>
int main( ) { using namespace std; map <int, int>::iterator m1_pIter, m2_pIter;
map <int, int> m1, m2; typedef pair <int, int> Int_Pair;
m1.insert ( Int_Pair ( 1, 10 ) ); m1.insert ( Int_Pair ( 2, 20 ) ); m1.insert ( Int_Pair ( 3, 30 ) ); m1.insert ( Int_Pair ( 4, 40 ) );
cout << "The original key values of m1 ="; for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ ) cout << " " << m1_pIter -> first; cout << "." << endl;
cout << "The original mapped values of m1 ="; for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ ) cout << " " << m1_pIter -> second; cout << "." << endl;
pair< map<int,int>::iterator, bool > pr; pr = m1.insert ( Int_Pair ( 1, 10 ) );
if( pr.second == true ) { cout << "The element 10 was inserted in m1 successfully." << endl; } else { cout << "Key number 1 already exists in m1\n" << "with an associated value of ( (pr.first) -> second ) = " << ( pr.first ) -> second << "." << endl; }
// The hint version of insert m1.insert( --m1.end( ), Int_Pair ( 5, 50 ) );
cout << "After the insertions, the key values of m1 ="; for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ ) cout << " " << m1_pIter -> first; cout << "," << endl;
cout << "and the mapped values of m1 ="; for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ ) cout << " " << m1_pIter -> second; cout << "." << endl;
m2.insert ( Int_Pair ( 10, 100 ) );
// The templatized version inserting a range m2.insert( ++m1.begin( ), --m1.end( ) );
cout << "After the insertions, the key values of m2 ="; for ( m2_pIter = m2.begin( ); m2_pIter != m2.end( ); m2_pIter++ ) cout << " " << m2_pIter -> first; cout << "," << endl;
cout << "and the mapped values of m2 ="; for ( m2_pIter = m2.begin( ); m2_pIter != m2.end( ); m2_pIter++ ) cout << " " << m2_pIter -> second; cout << "." << endl; } |
map::operator[]
| Код | // map_op_insert.cpp // compile with: /EHsc #include <map> #include <iostream>
int main( ) { using namespace std; typedef pair <const int, int> cInt2Int; map <int, int> m1; map <int, int> :: iterator pIter; // Insert a data value of 10 with a key of 1 // into a map using the operator[] member function m1[ 1 ] = 10;
// Compare other ways to insert objects into a map m1.insert ( map <int, int> :: value_type ( 2, 20 ) ); m1.insert ( cInt2Int ( 3, 30 ) );
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;
// If the key already exists, operator[] // changes the value of the datum in the element m1[ 2 ] = 40;
// operator[] will also insert the value of the data // type's default constructor if the value is unspecified m1[5];
cout << "The keys of the mapped elements are now:"; for ( pIter = m1.begin( ) ; pIter != m1.end( ) ; pIter++ ) cout << " " << pIter -> first; cout << "." << endl;
cout << "The values of the mapped elements are now:"; for ( pIter = m1.begin( ) ; pIter != m1.end( ) ; pIter++ ) cout << " " << pIter -> second; cout << "." << endl; } |
|