下列关于stl的说法正确的是()
map的迭代器的key是const类型,无法对其进行修改
stl的排序算法一般比较传统的快速排序快是因为其选取中值的算法好
list是双链表实现,插入的元素的复杂度为O(1)
vector的大小会增大或者减少,但容量只会增大不会减少
有vector<int> v1;//经过大起大落、删删减减之后,原先有上万条内容,现在只剩下寥寥数十条
它的size不大,但是capcity由于只是删除元素,仍然保持者上万条的规模
vector<int>v2(v1);//v2中保存的是v1中的副本,但是v2是按需构建的,也就是说v2的size和它的capcity是比较相配的。
v1.swap(v2)//这样一来v1和v2不仅交换了内容(其实两者的内容是完全一模一样的),而且把capcity都交换了。
STL的sort算法,数据量大时采用QuickSort快排算法,分段归并排序。一旦分段后的数据量小于某个门槛(16),为避免QuickSort快排的递归调用带来过大的额外负荷,就改用Insertion Sort插入排序。如果递归层次过深,还会改用HeapSort堆排序。
B选项:快速排序方法中,选取中值以及待排序列是否基本有序都会影响。但是快速排序快并不是因为选取中值的算法好,而是因为其平均情况下的时间复杂度可达到O(n * log 2 n)
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题