C++/Map Multimap/map insert

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Insert value pair to map

<source lang="cpp">

  1. include <iostream>

using std::cout; using std::endl;

  1. include <map> // map class-template definition

int main() {

  std::map< int, double, std::less< int > > pairs;
  pairs.insert( std::map< int, double, std::less< int > >::value_type( 15, 2.7 ) );
  pairs.insert( std::map< int, double, std::less< int > >::value_type( 30, 111.11 ) );
  pairs.insert( std::map< int, double, std::less< int > >::value_type( 0, 1010.1 ) );
  pairs.insert( std::map< int, double, std::less< int > >::value_type( 10, 22.22 ) );
  pairs.insert( std::map< int, double, std::less< int > >::value_type( 25, 33.333 ) );
  pairs.insert( std::map< int, double, std::less< int > >::value_type( 0, 77.54 ) ); // dup ignored
  pairs.insert( std::map< int, double, std::less< int > >::value_type( 20, 9.345 ) );
  pairs.insert( std::map< int, double, std::less< int > >::value_type( 15, 99.3 ) ); // dup ignored
  cout << "pairs contains:\nKey\tValue\n";
  // use const_iterator to walk through elements of pairs
  for ( std::map< int, double, std::less< int > >::const_iterator iter = pairs.begin();
     iter != pairs.end(); ++iter )
     cout << iter->first << "\t" << iter->second << "\n";
  cout << endl;
  return 0;

} /* pairs contains: Key Value 0 1010.1 10 22.22 15 2.7 20 9.345 25 33.333 30 111.11

*/        
   
 </source>


map insert

<source lang="cpp">

  1. include <map>
  2. include <iostream>

using namespace std; class Data { public:

 Data(int val = 0) { mVal = val; }
 int getVal() const { return mVal; }
 void setVal(int val) {mVal = val; }

protected:

 int mVal;

}; int main(int argc, char** argv) {

 map<int, Data> dataMap;
 pair<map<int, Data>::iterator, bool> ret;
 ret = dataMap.insert(make_pair(1, Data(4)));
 if (ret.second) {
   cout << "Insert succeeded!\n";
 } else {
   cout << "Insert failed!\n";
 }
 
 ret = dataMap.insert(make_pair(1, Data(6)));
 if (ret.second) {
   cout << "Insert succeeded!\n";
 } else {
   cout << "Insert failed!\n";
 }
 return (0);

}


 </source>