set的基本用法

#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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
unordered_set是C++标准库的一个容器,用于存储唯一的元素集合,且元素的顺序是无序的。以下是unordered_set的使用方法: 1. 包含头文件:首先需要包含<unordered_set>头文件。 2. 定义和初始化:可以使用不同类型的元素进行初始化unordered_set对象,例如: ```cpp std::unordered_set<int> mySet; // 定义一个存储int类型的unordered_set std::unordered_set<std::string> mySet2 = {"apple", "banana", "orange"}; // 使用初始化列表初始化unordered_set ``` 3. 插入元素:使用insert()函数将元素插入到unordered_set,例如: ```cpp mySet.insert(10); // 插入元素10 mySet.insert(20); // 插入元素20 ``` 4. 查找元素:使用find()函数可以在unordered_set查找指定元素,如果元素存在,返回指向该元素的迭代器;如果元素不存在,返回unordered_set::end()。例如: ```cpp auto it = mySet.find(10); // 查找元素10 if (it != mySet.end()) { std::cout << "Element found: " << *it << std::endl; } else { std::cout << "Element not found" << std::endl; } ``` 5. 删除元素:使用erase()函数可以从unordered_set删除指定元素或范围内的元素,例如: ```cpp mySet.erase(10); // 删除元素10 ``` 6. 遍历元素:使用迭代器可以遍历unordered_set的所有元素,例如: ```cpp for (auto it = mySet.begin(); it != mySet.end(); ++it) { std::cout << *it << " "; } std::cout << std::endl; ``` 7. 其他操作:unordered_set还提供了其他一些常用的操作,如判断是否为空(empty())、获取元素个数(size())等。 这是unordered_set基本使用方法,你可以根据需求进行扩展和深入学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值