C++ STL性能分析---------根据他人博客,自己总结

来源:互联网 发布:linux网络编程 mysql 编辑:程序博客网 时间:2024/04/28 13:59

前几天,支付宝的人对我进行了电话面试,问到了STL中的一些问题,由于我好久没有看STL,因此写下来方便记忆,如果

认为写得不好的多多指教。

Vector:vector是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小。对其进行增加,

删除跟正常的顺序表没有什么区别,因此需要移动后面的数据,时间复杂度为O(n),随机访问的时间复杂度是O(1)。

List:List将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢,负责度为O(n)。

Map:pair组成的红黑树;insert() O(logn);erase()  O(logn);find()   O(logn) 找不到返回a.end()

Set:内部实现: 红黑树 //Red-Black Tree,一种平衡的二叉排序树//又是一个Compare函数,类似于qsort函数里的那个Compare函数,作为红黑树在内部实现的比较方式

insert() O(logn);erase()  O(logn);find()   O(logn)

原创粉丝点击