![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
文章平均质量分 92
ordinarv
努力才是人生的常态
展开
-
浅谈STL
在算法设计中经常用到某些数据额结构,为了提高设计效率,我们应尽可能的使用现成的数据结构来实现。Standard Template Library 就是一个非常好用的算法设计库。Feature STL的所有组件都是用模板方式定义的,全面支持泛型,强调的是让数据的结构和算法独立于其类型。 主要分为三类,Container、Algorithm、Iterator。将对容器的数据操作设计成通用算法,...原创 2018-08-23 10:39:40 · 299 阅读 · 0 评论 -
STL之queue & priority_queue基操
先来讲下priority_queue 在优先队列中,优先级高的元素先出队列。 标准库默认使用元素类型的<操作符来确定它们之间的优先级关系。 1、通过<操作符可知在整数中元素大的优先级高。 priority_queue<int> q; 故出队序列为:9 6 5 3 2 2、传入一个比较函数,使用functional.h函数对象作为比较函数。实现从小到大 pri...原创 2018-08-27 17:02:31 · 119 阅读 · 0 评论 -
STL-unique函数
unique的作用是“去掉”容器中相邻元素的重复元素,这里去掉要加一个引号,为什么呢,是因为它实质上是一个伪去除,它会把重复的元素添加到容器末尾,而返回值是去重之后的尾地址(是地址!!),举个例子: #include<algorithn> int num[10]={1,1,2,2,2,3,4,5,5,5}; int ans=unique(num,num+10)-num; 这...原创 2018-08-23 19:07:08 · 124 阅读 · 0 评论 -
sort()相关
greater和less greater和less是头文件<xfunctional>中定义的两个结构。下面看它们 的定义,greater和less都重载了操作符()。 // TEMPLATE STRUCT greater template<class _Ty> struct greater : public binary_function<_Ty, _...原创 2018-08-24 10:20:08 · 106 阅读 · 0 评论 -
Set(集合)
简介 关于set,必须说明的是set关联式容器。set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。应该注意的是set中数元素的值不能直接被改变。C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑...原创 2018-08-30 14:36:51 · 1353 阅读 · 0 评论 -
map(映射容器)/multimap(多重映射容器)
映射是实现关键字与值关系的存储结构,可以使用一个关键字key来访问相应的数据值value。 map<string,int> m; m["hha"] = 10; //插入方法1 m.insert(pair<string,int>("hha",10)); //插入方法2 m.inser...原创 2018-08-30 14:42:22 · 749 阅读 · 0 评论 -
vector(向量容器)
vector相当于动态数组,可以从尾部快速的插入和删除元素。支持随机访问。 如果初始分配的空间不够,当超过空间大小时会重新分配更大的空间(通常按照两倍大小扩展),此时需要进行大量的元素复制,从而增加了性能开销。 1、定义vector向量的几种方式 vector<int> v1; //基本 vector<int> v2(10); //指定向量v2的...原创 2018-12-21 11:56:47 · 271 阅读 · 0 评论 -
STL常用操作
给容器排序 vector vector<double> s; s.push_back(1.22); s.push_back(15.3); s.push_back(1.33); sort(s.begin(),s.end(),greater<double>()); for(vector<double>::iterator it=s.begin();it!=s....原创 2019-02-20 11:52:02 · 132 阅读 · 0 评论 -
判断STL容器中是否有某元素存在
vector vector<int> a; a.push_back(521); vector<int>::iterator it = find(a.begin(),a.end(),521); if(it != a.end()) cout<<"exist"<<endl; else cout<<"Not exist"<<end...原创 2019-03-27 22:55:40 · 2787 阅读 · 0 评论