STL
青盏
这个作者很懒,什么都没留下…
展开
-
C++STL库之algorithm库简介
来源不修改内容的序列操作:adjacent_find查找两个相邻(Adjacent)的等价(Identical)元素all_ofC++11检测在给定范围中是否所有元素都满足给定的条件any_ofC++11检测在给定范围中是否存在元素满足给定条件count返回值等价于给定值的元素的个数转载 2017-08-26 18:00:02 · 1122 阅读 · 0 评论 -
STL之unordered_map map multimap 排序 嵌套
一、介绍无序映射表(Unordered Map)容器是一个存储以键值对组合而成的元素的关联容器。底层数据结构二叉平衡树(红黑树)。 运行效率方面:unordered_map最高,hash_map其次,而map效率最低。需要无序容器时候用unordered_map,有序容器时候用map。二、访问函数 函数 作用 operator[] 访问函数 at 访问函数二、迭代函数原创 2016-10-08 18:37:53 · 2471 阅读 · 0 评论 -
STL string常用函数
很详细的string api一.使用包含#include <string> using namespace std;二.声明string a = “hello”;三.增string类重载运算符operator>>用于输入,重载运算符operator<<用于输出操作 函数getline(istream &in,string &s)cin>>a;cin.ignore();getline(cin,原创 2016-08-16 18:07:00 · 332 阅读 · 0 评论 -
STL之queue队列 stack栈 priority_queue优先队列 deque双向队列
一、queue先进先出 一般方法: empty() 是否为空 size() 返回大小 front() back() push() 压入一个数 pop() 抛弃第一个数 top() 返回第一个数二、priority_queue方法类似,不过优先队列可以实现自动排序。其模板声明如下: priority_queueint a[3] = {1,2,3};priority_queue原创 2017-08-17 20:12:07 · 490 阅读 · 0 评论 -
C++ STL set集合
set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的的数据结构,在插入元素时,会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值。平衡二叉检索树的检索使用中序遍历算法,检索效率高于vector、deque、和list的容器。另外,采用中序遍历算法可将键值由小到大遍历出来,所以,可以理解为平衡二叉检索树原创 2017-11-28 19:29:47 · 265 阅读 · 0 评论 -
STL 常用库简介
Standard Template Library (STL) :标准模板库。主要分为三类:算法(Algorithm)、容器(Container)和迭代器(Iterator)。在C++标准中,STL被组织为下面的13个头文件:Algorithm有:<algorithm> 模板函数组成,涉及比较、交换、查找、遍历操作、复制、修改、移除、反转、排序、合并等等。<functional> 定义了一些模板类,转载 2017-11-28 19:02:34 · 1551 阅读 · 0 评论 -
STL之sort、priority_queue 排序
前几天在使用priority_queue时,发现其与sort排序相反,遂做个对比。一、sortsort()一般情况下,会使用快排,但是发现效率不高的话,会自动调整成其他排序来辅助。sort的默认排序为less,也就是说从小到大排序。字符排序:从小到大char ch[20]="dcba";sort(ch,ch+14);// a b c d自定义排序函数:从大到小int a[10];bool原创 2017-08-21 13:06:22 · 6576 阅读 · 0 评论 -
STL之vector常用方法 二维vector 取vector数组指针
一.使用包含#include <vector> using namespace std;二.声明1、一维数组: vector a; 2、动态创建m*n的二维vector:方法一: vector<vector<int> > arr; (注意<int>后有空格或者使用typedef定义) arr.resize(m); for(int i=0;i<m;i++)原创 2016-08-16 18:16:58 · 11719 阅读 · 0 评论 -
STL 之 utility pair swap move
pair:// make_pair example#include <utility> // std::pair#include <iostream> // std::coutint main () { std::pair <int,int> foo; std::pair <int,int> bar; foo = std::make_pair (10,20); b原创 2017-08-26 17:36:01 · 503 阅读 · 0 评论 -
vector数组 传递 引用 指针 参数
一、一维vector<int> vec; 1. void deal( vector<int> vec ); 2. void deal( vector<int>* pvec ); 3. void deal( const vector<int>* pvec ); // 调用时不会调用拷贝构造函数4. void deal( vector<int>& vec ); 5. void deal( c原创 2016-10-14 14:49:23 · 8068 阅读 · 0 评论 -
STL之makepair
一、引用#include <utility> //注意不是pair二、使用// 初始化pair<int, double> p(1, 2.1); //用给定值初始化pair<int, double> p(p1);pair<int, double> p = p1;// 访问值或赋值p.first = 4;p.second = 7;// 或者赋值p = make_pair(1, 1.2)原创 2017-08-08 23:31:36 · 497 阅读 · 0 评论 -
STL之map两个key
//非完全代码,此方法编译通过typedef pair<int,int> pairInt; //定义两个keytypedef map<pairInt,int> mapInt; //定义mapvector<mapInt> uv(line); //实现类似二维数组uv[i].insert(make_pair(pairInt(a,b),c)); //插入uv[i].coun原创 2016-10-11 21:30:45 · 4061 阅读 · 0 评论 -
STL之二维vector存储两个数据
typedef pair<int,int> PairInt;typedef vector<PairInt> VecPair;typedef vector<VecPair> VecVec;VecVec sum(2,VecPair(8)); //声明vector用pair存储两个数据sum[gamer].insert(sum[gamer].begin()+a,make_pair(b,c))原创 2016-10-16 16:41:22 · 2791 阅读 · 0 评论 -
STL algorithm 查找函数 find find_if count count_if search search_n
元素查找find: 从给定区间中查找单个元素it = find (myvector.begin(), myvector.end(), 30);if (it != myvector.end()){}find_if和find_if_not : 从给定区间中找出满足比较函数的第一个元素.bool IsOdd (int i) { return ((i%2)==1);}it = find (my原创 2018-01-20 14:28:37 · 1043 阅读 · 0 评论