首页 > 其他 > 详细

STL数据结构应用

时间:2021-01-29 09:58:44      阅读:22      评论:0      收藏:0      [点我收藏+]

(暂未完结)

  • STL(Standard template library)也称作标准模板库。是C++提供的一些功能强大的容器,可以一定程度上省去手写数据结构的麻烦。

目录

?stack

头文件:<stack>

描述 语句 复杂度
向栈顶插入元素 <name>.push() \(O(1)\)
删除栈顶元素 <name>.pop() \(O(1)\)
访问栈顶元素 <name>.top() \(O(1)\)
返回容纳的元素数 <name>.size() \(O(1)\)
检查是否为空 <name>.empty() \(O(1)\)

?queue

queue

队列。

头文件:queue

描述 语句 复杂度
向队列尾部插入元素 <name>.push() \(O(1)\)
删除首个元素 <name>.pop() \(O(1)\)
访问第一个元素 <name>.front() \(O(1)\)
访问最后一个元素 <name>.back() \(O(1)\)
返回容纳的元素数 <name>.size() \(O(1)\)
检查是否为空 <name>.empty() \(O(1)\)

priority_queue

优先队列。

头文件:queue

描述 语句 复杂度
插入元素,并排序 <name>.push() \(O(logn)\)
删除首个元素 <name>.pop() \(O(logn)\)
访问第一个元素 <name>.top() \(O(1)\)
访问最后一个元素 <name>.back() \(O(1)\)
检查是否为空 <name>.empty() \(O(1)\)
定义:  priority_queue<Type, Container, Functional>name;
如:	  priority_queue<int>q;//默认为大根堆
	   priority_queue<int,vector<int>,less<int> >q;//大根堆
	   priority_queue<int,vector<int>,greater<int> >q;//小根堆

若对于自定义数据类型(如struct),需要重载运算符。格式如下:

inline bool operator <Operators> (const <Type>& a, const <Type>& b){
    return <>;
}

如:

inline bool operator < (const struct& a,const struct& b){
    return a.a < b.a;
}

大根堆需定义<,小根堆需定义>


?vector

一个动态大小数组。

?deque

?set

?map

STL数据结构应用

原文:https://www.cnblogs.com/Shinomiya/p/14342559.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!