48. 总是包含(#include)正确的头文件

在一个STL平台上能够编译通过的软件,在另外一个平台上可能需要一些额外的#include指令才能通过编译。
你不能将移植的困难归咎于编译器或者类库实现,如果你漏掉了必要的头文件,那么这是自己的错。

任何时候只要你引用了std名字空间中的元素,你就有责任包含正确的头文件。如果省略了这些头文件,可能在特定的STL平台上可以通过编译,但是其他平台完全有可能拒绝编译通过。

下面是几条提示:

  • 几乎所有的标准STL容器都呗声明为与之同名的同文件中。比如vector被声明在中,list被声明在</list/>中等等。
    但是和是个例外,中声明了set和multiset, 声明了map和multimap。

  • accumulate、inner_product、adjacent_difference、partial_sum被声明在中,其他所有算法都在中。

  • 特殊类型的迭代器,包括istream_iterator、istreambuf_iterator被声明在中。

  • 标准的函数子(如less)和函数配接器(例如not1、bind2nd)被声明在头文件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值