赞
踩
STL中的set、map都通过红黑树实现。红黑树的类型实际上是可以拿出来用的。用起来也是容易的。因为不是标准规定的容器,具体的名字可能会略有的差别。
例子最后演示了迭代器find()。这个地方语法上可以修改,但不能随便修改,因为会破坏key的排序。
#include <stdio.h> #include <set> using namespace std; typedef _Rb_tree<int, int, _Identity<int>, less<int> > Tree; int main() { Tree t; /* t.insert_equal(3); t.insert_equal(5); t.insert_equal(7); t.insert_equal(9); */ t.insert_unique(3); t.insert_unique(5); t.insert_unique(7); t.insert_unique(9); t.insert_unique(3); t.insert_unique(5); t.insert_unique(7); t.insert_unique(9); Tree::iterator it; it = t.begin(); while (it!=t.end()) { printf("%d ", *it); ++it; } printf("\n"); it = t.find(7); *it=8; it = t.begin(); while (it!=t.end()) { printf("%d ", *it); ++it; } printf("\n"); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。