Mega Code Archive

 
Categories / C++ / Map Multimap
 

Change all value in a map and output all elements

/* The following code example is taken from the book  * "The C++ Standard Library - A Tutorial and Reference"  * by Nicolai M. Josuttis, Addison-Wesley, 1999  *  * (C) Copyright Nicolai M. Josuttis 1999.  * Permission to copy, use, modify, sell and distribute this software  * is granted provided this copyright notice appears in all copies.  * This software is provided "as is" without express or implied  * warranty, and with no claim as to its suitability for any purpose.  */ #include <iostream> #include <map> #include <string> using namespace std; int main() {     /* create map / associative array      * - keys are strings      * - values are floats      */     typedef map<string,float> StringFloatMap;     StringFloatMap stocks;      // create empty container     // insert some elements     stocks["BASF"] = 369.50;     stocks["VW"] = 413.50;     stocks["Daimler"] = 819.00;     stocks["BMW"] = 834.00;     stocks["Siemens"] = 842.20;     // print all elements     StringFloatMap::iterator pos;     for (pos = stocks.begin(); pos != stocks.end(); ++pos) {         cout << "stock: " << pos->first << "\t"              << "price: " << pos->second << endl;     }     cout << endl;     // boom (all prices doubled)     for (pos = stocks.begin(); pos != stocks.end(); ++pos) {         pos->second *= 2;     }     // print all elements     for (pos = stocks.begin(); pos != stocks.end(); ++pos) {         cout << "stock: " << pos->first << "\t"              << "price: " << pos->second << endl;     }     cout << endl; } /*  stock: BASF     price: 369.5 stock: BMW      price: 834 stock: Daimler  price: 819 stock: Siemens  price: 842.2 stock: VW       price: 413.5 stock: BASF     price: 739 stock: BMW      price: 1668 stock: Daimler  price: 1638 stock: Siemens  price: 1684.4 stock: VW       price: 827  */