將map輸出到cout,是否有更方便的方法? (C/C++) (STL)

大家都體會過sequential container搭配copy() algorithm,只要一行程式就可以將所有值輸出到cout,map這種associative container就無法用這一招,是否有其它方式解決呢?

map這種associative container因為是雙值,若用copy()到cout,會讓cout傻眼,不知道要抓拿一個值,當然用for loop一定可以,但基於使用STL的最高境界:不用for/while loop,此範例我們使用了for_each() algorithm。

 1  將map輸出到cout,是否有更方便的方法? (C/C++) (STL) /* 
 2 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)(C) OOMusou 2006 http://oomusou.cnblogs.com
 3 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)
 4 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)Filename    : MapWithfor_each.cpp
 5 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)Compiler    : Visual C++ 8.0 / ISO C++
 6 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)Description : Demo how to use for_each() algorithm to print map.
 7 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)Release     : 12/14/2006 1.0
 8 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)*/

 9  將map輸出到cout,是否有更方便的方法? (C/C++) (STL)#include  < iostream >
10  將map輸出到cout,是否有更方便的方法? (C/C++) (STL)#include  < map >
11  將map輸出到cout,是否有更方便的方法? (C/C++) (STL)#include  < algorithm >
12  將map輸出到cout,是否有更方便的方法? (C/C++) (STL)#include  < string >
13  將map輸出到cout,是否有更方便的方法? (C/C++) (STL)
14  將map輸出到cout,是否有更方便的方法? (C/C++) (STL) using   namespace  std;
15  將map輸出到cout,是否有更方便的方法? (C/C++) (STL)
16  將map輸出到cout,是否有更方便的方法? (C/C++) (STL) void  print(pair < int , string > );
17  將map輸出到cout,是否有更方便的方法? (C/C++) (STL)
18  將map輸出到cout,是否有更方便的方法? (C/C++) (STL) int  main()  {
19 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)  map<intstring> authors;
20 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)  authors[1= "Stanley B. Lippman";
21 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)  authors[2= "Scott Meyers";
22 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)  authors[3= "Andrei Alexandrescu";
23 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)
24 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)  for_each(authors.begin(), authors.end(), print);
25 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)
26 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)  return 0;
27 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)}

28  將map輸出到cout,是否有更方便的方法? (C/C++) (STL)
29  將map輸出到cout,是否有更方便的方法? (C/C++) (STL) void  print(pair < int string >  p)  {
30 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)  cout << p.second << endl;
31 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)}


執行結果

1  將map輸出到cout,是否有更方便的方法? (C/C++) (STL) Stanley B. Lippman
2  將map輸出到cout,是否有更方便的方法? (C/C++) (STL)Scott Meyers
3  將map輸出到cout,是否有更方便的方法? (C/C++) (STL)Andrei Alexandrescu
4  將map輸出到cout,是否有更方便的方法? (C/C++) (STL)請按任意鍵繼續 . . .


使用for_each()的感動雖然不如copy()那樣震撼,但最少程式乾淨了許多。

See Also
(原創) 如何為程式碼加上行號? (C/C++) (STL)

你可能感兴趣的:(c/c++)