c++ stl set

虽然经常使用c++的stl,set也是经常使用的一个容器,但是发现对于set的理解还是比较浅显。今天使用时无意就撞入了一个坑里。

stl中set和map都是用红黑树实现的。set是key和value相同的结构。

代码如下:

#include <set>

#include <iostream>
#include <iterator>
#include <string>
namespace std;
   6:  
struct Object {
int t, string k) : timestamp(t), key(k) {
   9:   }
int timestamp;
  11:   string key;
const {
return key.compare(o.key);
  14:   }
  15: }Object;
  16:  
const Object& obj) {
;
  19: }
  20:  
const string& s2) {
return s1.compare(s2);
  23: }
char** argv) {
  25:   {
  26:     set<Object> obj_set;
)).second << endl;
)).second << endl;
)).second << endl;
)).second << endl;
)).second << endl;
)).second << endl;
)).second << endl;
)).second << endl;
));
  36:     cout << endl;
)) != obj_set.end()) << endl;
)) != obj_set.end()) << endl;
)) != obj_set.end()) << endl;
)) != obj_set.end()) << endl;
  41:   }
return 0;
  43: }