html5中文学习网

您的位置: 首页 > 网站及特效实例 > jquery特效 » 正文

STL中的set/multiset实操总结_编程语言综合

[ ] 已经帮助:人解决问题

  (1)使用set/multiset之前必须包含头文件<set>:#include<set> 97eHTML5中文学习网 - HTML5先行者学习网
97eHTML5中文学习网 - HTML5先行者学习网
(2)namespace std{ 97eHTML5中文学习网 - HTML5先行者学习网
template <class T, class Compare = less<T>, 97eHTML5中文学习网 - HTML5先行者学习网
class Allocator = allocator<T> > 97eHTML5中文学习网 - HTML5先行者学习网
class set; 97eHTML5中文学习网 - HTML5先行者学习网
template <class T, class Compare = less<T>, 97eHTML5中文学习网 - HTML5先行者学习网
class Allocator = allocator<T> > 97eHTML5中文学习网 - HTML5先行者学习网
class multiset; 97eHTML5中文学习网 - HTML5先行者学习网
97eHTML5中文学习网 - HTML5先行者学习网
只要是assignable、copyable、comparable的型别T都可以成为set或multiset的元素型别。 97eHTML5中文学习网 - HTML5先行者学习网
set/multiset的排序准则必须是strict weak ordering其意义是:1必须是反对称的,对判断式op而言,如果op(x,y)为真则op(y,x)为假。2必须是可传递的,如果op(x,y)为真且op(y,z)为真则op(x,z)。3必须是非自反的,op(x,x)永远为假。 97eHTML5中文学习网 - HTML5先行者学习网
97eHTML5中文学习网 - HTML5先行者学习网
(3)set/multiset通常都是以平衡二叉树来实现的,事实上set/multiset的实现版本大多以红黑树来实现,它保证节点安插时最多只会做两个重新连接动作,而且到达某一元素的最长路径最多只是最短路径深度的两倍。 97eHTML5中文学习网 - HTML5先行者学习网
97eHTML5中文学习网 - HTML5先行者学习网
(4)set/multiset的操作函数: 97eHTML5中文学习网 - HTML5先行者学习网
set c 产生一个空set/multiset 97eHTML5中文学习网 - HTML5先行者学习网
set c(op) 以op为排序准则产生一个空set/multiset 97eHTML5中文学习网 - HTML5先行者学习网
set c1(c2) 产生某一个set/multiset的副本 97eHTML5中文学习网 - HTML5先行者学习网
set c(beg, end) 以区间[beg, end)内的元素产生一个set/multiset 97eHTML5中文学习网 - HTML5先行者学习网
set c(beg, end, op) 以op为排序准则,以区间[beg, end)内的元素产生一个set/multiset 97eHTML5中文学习网 - HTML5先行者学习网
c.~set() 销毁所有元素,释放内存 97eHTML5中文学习网 - HTML5先行者学习网
其中set可为下列形式:set<Elem>、set<Elem, op>、multiset<Elem>、multiset<Elem, op> 97eHTML5中文学习网 - HTML5先行者学习网
97eHTML5中文学习网 - HTML5先行者学习网
c.size() 返回当前的元素数量 97eHTML5中文学习网 - HTML5先行者学习网
c.empty() 判断c是否为空 97eHTML5中文学习网 - HTML5先行者学习网
c.max_size() 返回可容纳的元素最大数值 97eHTML5中文学习网 - HTML5先行者学习网
c1 compare c2 compare可为==,!=,<,>,<=和>= 97eHTML5中文学习网 - HTML5先行者学习网
97eHTML5中文学习网 - HTML5先行者学习网
c.count(elem) 返回“元素值为elem”的元素个数 97eHTML5中文学习网 - HTML5先行者学习网
c.find(elem) 返回“元素值为elem”的第一个元素的迭代器,如果找不到就返回end() 97eHTML5中文学习网 - HTML5先行者学习网
c.lower_bound(elem) 返回elem的第一个可安插位置,也就是“元素值>=elem”的第一个元素位置 97eHTML5中文学习网 - HTML5先行者学习网
c.upper_bound(elem) 返回elem的最后一个可安插位置,也就是“元素值>elem”的第一个元素位置 97eHTML5中文学习网 - HTML5先行者学习网
c.equal_range(elem) 返回elem的第一个和最后一个位置,也就是“元素值==elem”的第一个元素区间,返回值为将lower_bound()和upper_bound()的返回值做成一个pair返回 97eHTML5中文学习网 - HTML5先行者学习网
97eHTML5中文学习网 - HTML5先行者学习网
c1 = c2 将c2全部元素赋值给c1 97eHTML5中文学习网 - HTML5先行者学习网
c1.swap(c2) 将c1和c2元素互换 97eHTML5中文学习网 - HTML5先行者学习网
97eHTML5中文学习网 - HTML5先行者学习网
c.begin() 返回一个双向存取迭代器(将元素视为常数),指向第一个元素 97eHTML5中文学习网 - HTML5先行者学习网
c.end() 返回一个双向存取迭代器(将元素视为常数),指向最后元素的下一个位置 97eHTML5中文学习网 - HTML5先行者学习网
c.rbegin() 返回一个逆向迭代器,指向逆向迭代的第一个元素 97eHTML5中文学习网 - HTML5先行者学习网
c.rend() 返回一个逆向迭代器,指向逆向迭代的最后元素的下一个位置 97eHTML5中文学习网 - HTML5先行者学习网
97eHTML5中文学习网 - HTML5先行者学习网
c.insert(elem) 插入一个elem副本并返回新元素的位置 97eHTML5中文学习网 - HTML5先行者学习网
c.insert(it, elem) 安插elem副本返回新元素的位置(it是一个提示指出安插操作的搜寻起点) 97eHTML5中文学习网 - HTML5先行者学习网
c.insert(beg, end) 插入区间[beg, end)内的所有元素副本,无返回值 97eHTML5中文学习网 - HTML5先行者学习网
c.erase(elem) 移除“与elem相等”的所有元素,返回被移除元素的个数 97eHTML5中文学习网 - HTML5先行者学习网
c.erase(it) 移除it位置上的元素,无返回 97eHTML5中文学习网 - HTML5先行者学习网
c.erase(beg, end) 移除[beg, end)区间内的所有元素,无返回 97eHTML5中文学习网 - HTML5先行者学习网
c.clear() 将容器清空 97eHTML5中文学习网 - HTML5先行者学习网
set提供如下接口: 97eHTML5中文学习网 - HTML5先行者学习网
pair<iterator, bool> insert(const value_type& elem); 97eHTML5中文学习网 - HTML5先行者学习网
pair结构中的second成员表示安插是否成功;first成员返回新元素的位置或返回现存的同值元素位置 97eHTML5中文学习网 - HTML5先行者学习网
iterator insert(iterator pos_hint, const value_type& elem); 97eHTML5中文学习网 - HTML5先行者学习网
multiset提供如下接口: 97eHTML5中文学习网 - HTML5先行者学习网
iterator insert(const value_type& elem); 97eHTML5中文学习网 - HTML5先行者学习网
iterator insert(iterator pos_hint, const value_type& elem);97eHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助