STL_set】的更多相关文章

SET是STL中的标准容器,SET里面的元素会依据键值自己主动排序,它不像map那样拥有实值value和键值key的相应,set仅仅有实值.SET的底层实现时RB-tree,当插入到RB-tree中后,其值不能再更改,由于更改就意味着可能不符合RB-tree的特性了,所以其迭代器set<T>::iterator是RB-tree的constrant iterator.由于SET底层是RB-tree,所以SET在插入等操作之后,迭代器不会失效,但删除元素的迭代器是个例外. G++ 2.91.57,…
stl_set.h // Filename: stl_set.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http://blog.csdn.net/mdl13412 /* * * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute and sell this software * and i…
题目链接:http://codeforces.com/problemset/problem/675/D 给你一个如题的二叉树,让你求出每个节点的父节点是多少. 用set来存储每个数,遍历到a[i]的时候查找比a[i]大的数的位置,然后插入,而父亲就是刚好比a[i]小的数或刚好大的数. 然后讨论是哪一个数. 比如给你3 1 2 ,如图 1的父亲是3 ,2的父亲是1. 那我其实只要找左边或右边出现最晚的数就行了,用pair的first表示a[i],second表示出现的顺序i. #include <…
1,set的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就 像一个集合一样.所有的操作的都是严格在logn时间之内完成,效率非常高. set和multiset的区别是:set插入的元素不能相同,但是multiset可以相同. 创建 multiset<ss> base; 删除:如果删除元素a,那么在定义的比较关系下和a相等的所有元素都会被删除 base.count( a ):set能返回0或者1,multiset是有多少个返回多少个. Set和multis…
本文senlie原版的,转载请保留此地址:http://blog.csdn.net/zhengsenlie set ------------------------------------------------------------------------ 全部元素都会依据元素的键值自己主动被排序. 不能够通过 set 的迭代器改变 set 的元素值.由于 set 元素值就是其键值.关系到 set 元素的排列规则. set<T>::iterator 被定义为底层 RB-tree 的 con…
#include <iostream> #include <set> #include <string> #include <cstdio> using namespace std; int main() { int N, max, count; ]; string s; multiset<string> S; scanf("%d", &N); while(N--) { gets(ss); s = ss; S.inse…
有 n 件T恤.第 i 件T恤的价格为 pi .每个T恤有两面,第 i 件T恤正面颜色为 ai ,反面颜色为 bi . 有 m 个人想买T恤,每个人都恰好买一件.第 j 个人最喜欢颜色 cj. 一个人会选择买一件至少有一面颜色为他喜欢的颜色的,最便宜的T恤.如果没有合法的T恤,则不买.这些人按照给定的顺序来购买. 你的任务是求出每个人会花多少钱. Input 第一行包含一个整数 n (1 ≤ n ≤ 200 000) - 表示T恤的数量. 之后一行为 p1, p2, ..., pn (1 ≤ p…
1. map, multimap, set, multiset g++ 中 map, multimap, set, multiset 由红黑树实现 map: bits/stl_map.h multimap: bits/stl_multimap.h set: bits/stl_set.h multiset: bits/stl_multiset.h 红黑树类——_Rb_tree: bits/stl_tree.h 若要分析红黑树的实现阅读 bits/stl_tree.h 即可 2. unordered…
来自STL中的概念:如果f是一个function object,则可以将operator()作用于f身上. 调用函数对象时构造函数和operator()执行顺序 首先执行构造函数,构造出一个匿名对象 然后在执行operator(),产生函数行为 #include <iostream> #include <vector> #include <algorithm> #include <string.h> #include <iterator> usi…
普通的stl::set,查找时只能传入key_type. 不能使用属性值查找. 例如: /* an employee record holds its ID, name and age */ class employee { public: int id; std::string name; int age; public: employee():id(){} employee(int id_,std::string name_,int age_):id(id_),name(name_),age…