C++标准库学习

来源:互联网 发布:剑三萝莉脸型数据截图 编辑:程序博客网 时间:2024/06/04 00:46

1、C++库中有哪些组件

       ※标准C库

            它还在,你可以用它,虽然有些地方有点小的修改,但是无论如何还是用了多年的C库。

       ※iostream库

           和传统的iostream的实现相比,它已经被模糊化了,继承层次结构也做了修改,增强了抛出异常的能力,可以支持string和国际化。当然,你期望的iostream库具有的功能几乎全部

           继续存在。也就是说它还是支持流缓冲区,格式化标示符,操作子和文件,还有cin,cout,cerr,和clog对象。这意味着可以把string和文件当做流,还可以对流的行为进行更广泛

           的控制,包括缓冲和格式化。

       ※string库

           string对象在大多数应用中被用来消除对char指针的使用。它支持你期望的那些操作,他们也可以转化为char*,以保持和现有代码的兼容性,他们还自动处理内存管理。一些string

           的实现运用了引用计数,这会带来比char*的字符串更佳的性能。

       ※容器库

          不要再写自己的基本容器类。标准库提供了以下高效的实现:vector(就像动态可扩充的数组),list(双链表),queue,stack,deque,map,set和bitset。唉,竟然没有hash

         table,不过多少可以补偿一点的是,string是容器,这很重要,因为这意味着对容器的所有操作对string都是可用的。

         什么?你不明白为什么说标准库的实现是高效的?很简单,标准库规定了每个类的接口,而且每条接口规范中的一部分是一套性能保证。所以,举例子来说,无论vector类的实现

         是如何的,仅仅提供对它的元素的访问是不够的,还必须提供常量时间内的访问。如果不这样就不是一个有效的vector实现。

        很多C++程序中,动态分配数组和字符串导致大量使用new和delete,new/delete的使用不正确会导致出现内存泄露。如果使用string和vector对象,而不使用char*和动态分配数

        组的指针,很多的new和delete就可以免于使用,他们所带来的问题也会随之消失。

        ※算法

        标准容器当然好,如果存在易于使用他们的方法就更好。标准库提供了大量的简易方法(既预定义函数,官方称为算法algorithm)。