STL
bryant-xw
Stay hungry, Stay foolish
展开
-
谈谈自己对STL中lower_bound()函数和upper_bound()函数的理解
STL库中的set和multiset容器中都含有lower_bound()函数和upper_bound() 函数,当然这两个函数也可以用于其他容器,比如array、vector等。在使用时在思想上是一致的,但是用法上略有不同。我用vector和multiset这两个容器举例说明。容器vectorlower_bound()函数:返回的是第一个不小于给定元素key的位置upper_bound...原创 2019-05-18 21:52:06 · 1470 阅读 · 1 评论 -
STL中vector 扩容为什么要以1.5倍或者2倍扩容?
我们知道,vector 在插入新的元素时但是之前的内存已经满的时候需要扩容,在 VS 下是 1.5倍,在 GCC 下是 2 倍。那么会产生两个问题:(1)为什么是成倍增长,而不是每次增长一个固定大小的容量呢?(2)为什么是以 2 倍或者 1.5 倍增长,而不是以 3 倍或者 4 倍等增长呢?1、第一个问题 :如果以成倍方式增长假定有 n 个元素,倍增因子为 m; 完成这 n 个元素往一个...原创 2019-04-25 20:13:01 · 13132 阅读 · 1 评论 -
multiset容器的学习
不同于set容器的一点是multiset允许有重复的值存在,不会像set一样自动去重.下面的代码学习了一下简单的函数功能code:#include<bits/stdc++.h>using namespace std;int main(){ //auto sort multiset<int> m; m.insert(1),m.ins...原创 2019-05-18 21:36:26 · 96 阅读 · 0 评论