STL
ordinarv
努力才是人生的常态
展开
-
浅谈STL
在算法设计中经常用到某些数据额结构,为了提高设计效率,我们应尽可能的使用现成的数据结构来实现。Standard Template Library 就是一个非常好用的算法设计库。Feature STL的所有组件都是用模板方式定义的,全面支持泛型,强调的是让数据的结构和算法独立于其类型。主要分为三类,Container、Algorithm、Iterator。将对容器的数据操作设计成通用算法,...原创 2018-08-23 10:39:40 · 289 阅读 · 0 评论 -
STL之queue & priority_queue基操
先来讲下priority_queue在优先队列中,优先级高的元素先出队列。标准库默认使用元素类型的<操作符来确定它们之间的优先级关系。1、通过<操作符可知在整数中元素大的优先级高。priority_queue<int> q;故出队序列为:9 6 5 3 22、传入一个比较函数,使用functional.h函数对象作为比较函数。实现从小到大pri...原创 2018-08-27 17:02:31 · 113 阅读 · 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 · 114 阅读 · 0 评论 -
sort()相关
greater和lessgreater和less是头文件<xfunctional>中定义的两个结构。下面看它们 的定义,greater和less都重载了操作符()。 // TEMPLATE STRUCT greatertemplate<class _Ty> struct greater : public binary_function<_Ty, _...原创 2018-08-24 10:20:08 · 98 阅读 · 0 评论 -
Set(集合)
简介 关于set,必须说明的是set关联式容器。set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。应该注意的是set中数元素的值不能直接被改变。C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑...原创 2018-08-30 14:36:51 · 1329 阅读 · 0 评论 -
map(映射容器)/multimap(多重映射容器)
映射是实现关键字与值关系的存储结构,可以使用一个关键字key来访问相应的数据值value。 map<string,int> m;m["hha"] = 10; //插入方法1m.insert(pair<string,int>("hha",10)); //插入方法2m.inser...原创 2018-08-30 14:42:22 · 731 阅读 · 0 评论 -
vector(向量容器)
vector相当于动态数组,可以从尾部快速的插入和删除元素。支持随机访问。如果初始分配的空间不够,当超过空间大小时会重新分配更大的空间(通常按照两倍大小扩展),此时需要进行大量的元素复制,从而增加了性能开销。1、定义vector向量的几种方式vector<int> v1; //基本 vector<int> v2(10); //指定向量v2的...原创 2018-12-21 11:56:47 · 251 阅读 · 0 评论 -
STL常用操作
给容器排序vectorvector<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 · 119 阅读 · 0 评论 -
判断STL容器中是否有某元素存在
vectorvector<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 · 2764 阅读 · 0 评论