set的基本用法

mac2022-06-30  26

#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<map> #include<set> #include<string> using namespace std; void test_set() { //1. key.查找关键字在不在 //2. 排序 + 去重 //3. 不能修改,改了底层的树就乱了 std::set<int> s; s.insert(4); s.insert(1); s.insert(2); s.insert(5); s.insert(5); s.insert(4); std::set<int>::iterator it = s.begin(); while(it != s.end()) { cout << *it << " "; it++; } cout << endl; it = s.find(2);//O(logN) 底层是二叉搜索树,只需要寻找高度次就可以 //it = find(s.begin(), s.end(), 5);//O(N) 暴力搜索 if (it != s.end()) { cout << "找到了" << endl; s.erase(it);//有的话就删,没有的话调它就会报错 } s.erase(3);//有这个数就删,没有就不管,一般用这个 for (auto e : s) { cout << e << " "; } cout << endl; //1. key.查找关键字在不在 //2. 排序 multiset<int> ms; ms.insert(3); ms.insert(3); ms.insert(1); ms.insert(2); ms.insert(3); ms.insert(3); ms.insert(4); ms.insert(3); for (auto e : ms) { cout << e << " "; } cout << endl; } int main() { test_set(); system("pause"); return 0; }
最新回复(0)