博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(原創) 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)
阅读量:6840 次
发布时间:2019-06-26

本文共 1076 字,大约阅读时间需要 3 分钟。

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

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

 1
/**/
/* 
 2(C) OOMusou 2006 http://oomusou.cnblogs.com
 3
 4Filename    : MapWithfor_each.cpp
 5Compiler    : Visual C++ 8.0 / ISO C++
 6Description : Demo how to use for_each() algorithm to print map.
 7Release     : 12/14/2006 1.0
 8*/
 9
#include 
<
iostream
>
10
#include 
<
map
>
11
#include 
<
algorithm
>
12
#include 
<
string
>
13
14
using
 
namespace
 std;
15
16
void
 print(pair
<
int
,
string
>
);
17
18
int
 main() 
{
19  map<intstring> authors;
20  authors[1= "Stanley B. Lippman";
21  authors[2= "Scott Meyers";
22  authors[3= "Andrei Alexandrescu";
23
24  for_each(authors.begin(), authors.end(), print);
25
26  return 0;
27}
28
29
void
 print(pair
<
int
string
>
 p) 
{
30  cout << p.second << endl;
31}

執行結果

1
Stanley B. Lippman
2
Scott Meyers
3
Andrei Alexandrescu
4
請按任意鍵繼續 . . .

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

你可能感兴趣的文章
Linux服务器信息收集
查看>>
怎样在 CentOS 7.0 上安装和配置 VNC 服务器
查看>>
学习 SQL 语句 - Select(2): 指定表中的字段
查看>>
iptraf
查看>>
Tomcat JDBC pool源码部析
查看>>
a 伪类在IE6下优先级大于class
查看>>
iOS 导出 ipa 包时 四个选项的意义
查看>>
我的友情链接
查看>>
android 简单解决询问权限问题和apk打包过大问题
查看>>
Android Accessibility学习笔记
查看>>
QEMU用户模式学习笔记
查看>>
两种方法解决mysql主从不同步
查看>>
Lvs+Keepalived+MySQL Cluster架设高可用负载均衡Mysql集群
查看>>
Spring高级应用之注入嵌套Bean
查看>>
mini6410 uboot1.1.6 MMC fat command support
查看>>
系统日志的实践应用
查看>>
基于SmartGwt的分页组件
查看>>
【oraInventory】由OUI-10035和OUI-10033错误引发的关于oraInventory目录位置的思考
查看>>
epoll和select的区别
查看>>
地产浅吟
查看>>