【C++ Miscellany】C++重要的几项改变、标准程序库

C++重要的几项改变:

  • 增加了一些新的语言特性:RTTI、namespaces、bool、关键字mutable和explicit、enums作为重载函数之自变量引发的类型晋升转换,以及“在class定义区内直接为整型 const static class members设定初值”的能力;
  • 扩充了Templates的弹性:允许member templates存在、接纳"明白只是template当场实例化"的标准语法、允许function templates接受"非类型自变量(non-type arguments)"、可用class templates作为其他template的自变量;
  • 强化了异常处理机制编译期间更严密地检验exception specifications、允许unexcpted函数抛出bad_exception对象;
  • 修改了内存分配例程:加入operator new[]operator delete[];内存未能分配成功时由operator new/new[]抛出一个异常,提供一个operator new/new[]新版本,在内存分配失败后返回0;
  • 增加了新的转型形式:static_cast,dynamic_cast,const_cast和reinterpret_cast;
  • 语言规则更为优雅精炼:重新定义虚函数时,其返回类型不再一定得与原定义完全吻合;此外临时对象的寿命也有了规范。

标准程序库

标准程序库的能力

  1. 支持C标准函数库;
  2. 支持strings;
  3. 支持国别(地域别、本土化、localization);
  4. 支持I/O;
  5. 支持数值应用;
  6. 支持广泛用途的容器和算法;

标准程序库的特点

  1. 标准程序库中每一样东西几乎都是template;
  2. 所有成分都位于namespace std内。

Standart Template Library(STL)

C++标准程序库的最大组成分子为STL:
主要包括容器(container)、迭代器(iterator)、泛型算法(algorithm):

  • 容器持有一系列对象;
  • 迭代器是一种类似指针的对象,用于遍历容器元素;
  • 泛型算法是可作用于STL容器身上的函数。

STL是可扩充的,可以将自己的容器、迭代器、算法加入STL家族内。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值