1.set如何实现无重复元素
void printSet(set<int>& s) { for (set<int>::iterator it = s.begin(); it != s.end(); it++) { cout << *it << " "; } cout << endl; } //set实现无重复元素原理 void test01() { set<int> s; //set实现无重复元素 insert处F12转到定义 /* template <bool _Multi2 = _Multi, enable_if_t<!_Multi2, int> = 0> pair<iterator, bool> insert(value_type&& _Val) { const auto _Result = _Emplace(_STD move(_Val)); return {iterator(_Result.first, _Get_scary()), _Result.second}; } */ //插入后返回对组 第一个为迭代器 第二个是bool 是否插入成功 pair<set<int>::iterator, bool> ret = s.insert(10); if (ret.second) { cout << "插入结果: " << ret.second << ", 数值为:" << *(ret.first) << endl; //bool转数值 1为true 0为false } else { cout << "插入结果:" << ret.second << endl; } s.insert(10); ret = s.insert(10); //再次插入 if (ret.second) { cout << "第二次插入结果: "<< ret.second << ", 数值为:" << *(ret.first) << endl; } else { cout << "第二次插入结果:" << ret.second << endl; } printSet(s); }
结果:
2.set容器排序