随笔分类 - stl
摘要:简述 优先队列是stl里容器的一种,优先队列的底层结构是堆,会根据定义的优先级将优先级高的排在队首,入队和出队的时间复杂度在log(n)。 定义 优先队列默认大的在队首,字符串则为字典序由大到小。int,double,char,string类型都可以这样定义。 priority_queue<int>
阅读全文
摘要:简述: set是stl里面的标准关联容器(vector,list,string,deque都是序列容器,map set 还有他们的mult都是关联容器),set就是集合的意思,元素只会出现一次(即会自动去重)且会对元素进行排序,底层使用红黑树来实现,插入和删除仅仅移动指针故效率肥肠高。 定义: se
阅读全文
摘要:简述: stack是stl的容器之一,本质上就是栈结构,后进先出,没有迭代器,只能访问栈顶。 定义: stack<int> st; 成员函数: (1)容量 •st.empty(); 栈判空 •st.size(); 栈元素个数 (2)操作 •st.push(x); 将x入栈 •st.pop(); 出栈
阅读全文
摘要:简述: queue就是一个队列,先进先出,没有迭代器,常用于广搜。 定义: queue<int> qe; 成员函数: (1)容量 •qe.size(); 队列元素个数 •qe.empty(); 队列判空 (2)操作 •qe.push(x); 将x放入队尾 •qu.pop(); 出队一个元素 (2)返
阅读全文
摘要:简述: list是stl的一个容器,本质上就是一个双向链表,能够支持O(1)的插入和删除。但list的查找却是O(n),无法用二分优化,因为list的存取方式不是随机存取,所以也就没有find函数了。 定义: list<int> li; list<int>::iterator it; 常见操作: (
阅读全文
摘要:简述: map是stl的一种关联式容器,提供一对一的数据存储结构,第一个成为关键字,第二个为该关键字的值,在map中关键字只能出现一次。map的内部为一棵红黑树,具有自动排序功能,map会根据key值的大小进行非降序排序,当key值类型为string时为字典序。在map中查找插入删除的时间复杂度都是
阅读全文
摘要:简述: 头文件—vector,vector是STL里的容器之一,与数组一样,内存空间连续,起始地址不变,能在O(1)做到随机存取。但添加和删除元素需要拷贝则时间为O(n),数组的大小为定义时分配,但vector可以实现动态增长,程序员可以不用考虑容量问题。size返回已用容量大小,capacity返
阅读全文