纠错一个Python程序引发的讨论


纠错一个Python程序引发的讨论

一个Python程序引发的讨论”确实热烈。
在此提一小错, 也是stl的一个应用示例。

C/C++(3):周星星/蒋黎(4.5s)

int main( void )
{
set<string> emails( istream_iterator<string>(ifstream( "email.txt" )), istream_iterator<string>() );
copy( emails.begin(), emails.end(), ostream_iterator<string>(ofstream( "email_new.txt" ),"/n") );
return 0;
}

这一段简洁的代码,不能编译(不知4.5s的结果是怎么出来的)。
需要如下修改

ifstream input("email.txt");
ofstream output("email_new.txt");
set<string> emails( (istream_iterator<string>(input)),
(istream_iterator<string>()) );
copy( emails.begin(), emails.end(),
ostream_iterator<string>(output, "/n") );

有两处修改:
1. 必须实例化ifstream, 因为 istream_iterator<>(istream_type&)
不能接受一个 const 参数。ofstream同理。

2. set<> 构造函数的两个参数要用括号括起来,不然编译器会以为
声明了一个返回值为set的函数emails。这可能与编译器有关。
我用的是DevCpp带的g++.

不知其它编译器如何,大家可以试试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值