set的基本用法

一、简介

  • 头文件:#include<set>
  • 元素会自动排序
  • set: 元素不重复的结合,
  • multiset:元素可以重复的集合

 

二、set类型的构造


set<int>  S;   //声明一个int类型的集合
set<char> S;  //声明一个char类型的集合
multiset<int> S;//声明一个可以存在相同元素的int类型的集合
multiset<string> S; //声明一个可以存在相同元素的string类型的集合
----------------------------------------------------------------------

 

三、元素的插入


multiset<string> S; //声明一个可以存在相同元素的string类型的集合

S.insert("fuck");   //"fuck"
S.insert("you");    //"fuck","you"
S.insert("hello");  //"fuck","hello","you"
S.insert("hello");  //"fuck","hello","hello","you"

----------------------------------------------------------------------
set<int>  S;//声明一个不存在相同元素的int类型的集合

S.insert(1); //1
S.insert(2); //1,2
S.insert(3); //1,2,3
S.insert(4); //1,2,3,4
S.insert(4); //1,2,3,4
-------------------------------------------------------------------------

multiset<int> S;//声明一个可以存在相同元素的int类型的集合
S.insert(1); //1
S.insert(2); //1,2
S.insert(3); //1,2,3
S.insert(4); //1,2,3,4
S.insert(4); //1,2,3,4,4

 

四、元素的删除

set<int>  S;  //设初始集合{1,2,3,4,5,6,7,8,9,}
S.erase(5) //根据元素内容删除5 {1,2,3,4,6,7,8,9,}
 
set<int>::iterator ita = s.begin();//声明迭代器 
set<int>::iterator ita = s.begin()+3;
S.insert(ita)//删除迭代器指向的元素 {2,3,4,6,7,8,9,}
S.insert(ita,itb)删除区间 [ita,itb)的元素{4,6,7,8,9,}

S.clear() ;//清空 

 

五、元素的查找


set<int>  S;  //设初始集合{1,2,3,4,5,6,7,8,9,}

set<int>::iterator it;

it=S.find(5);//查找元素第一次出现5的位置,返回迭代器 如果没找到则返回end()

 

六、其他操作

s.begin()     返回指向第一个元素的迭代器

s.end()       返回指向最后一个元素之后的迭代器,不是最后一个元素

s.count()     返回bool型,有返回1,无返回0

s.empty()     如果集合为空,返回true

s.find()      返回一个指向被查找到元素的迭代器,

s.size()      集合中元素的数目

s.swap()      交换两个集合变量

 

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值