STL库之集合基本使用方法

简介: STL库之集合基本使用方法

引言:

集合是数学中的一个概念,集合是由一些不重复的数据组成的。

在C++中我们常用的集合是set


一、引用库

c++中set的实现在一个头文件中,在代码开头引入这个头文件,并且同样加上一句using namespace std


二、构造一个集合

C++中直接构造一个set的语句是:seta.这样我们就定义了一个名为a的、储存数据类型为int的集合(与vector类似)


三、插入元素

使用insert()函数向集合中插入一个新的元素。注意如果结合中已经存在了某个元素,再次插入不会产生任何效果,集合中是不会出现相同元素的

同时用法也和vector一样,需要用集合名去引线


image.png


四、删除元素

用erase()函数删除集合中的一个元素,如果集合中没有和删除的元素,不进行任何操作


image.png


五、判断元素是否存在

直接使用count()函数。如果集合中存在我们要查找的元素,返回1,否则就返回0,尽管count()函数返回值是int类型,但他就返回1或0(所以我们可以使用count函数直接放入循环/判断条件)


六、遍历元素(迭代器的方法)

C++通过迭代器可以访问集合中的每一个元素,迭代器就好像一根手指指向set中的某个元素。通过操作这个手指,我们可以改变它指向的元素。通过*(解引用操作符)操作可以获取迭代器指向的元素。通过++操作让迭代器指向下一个元素,同理--操作让迭代器指向上一个元素。

迭代器的写法比较固定,set::iterator it就定义了指向set这种集合的迭代器it,T是任意的数据类型。其中::iterator是固定的写法。begin函数返回容器中其实元素的迭代器,end函数返回容器的尾后迭代器。(尾后迭代器表示在end后面一位的元素)


image.png最好先记住迭代器于for循环中使用的方法


#include<set>//数据结构set的头文件
#include<string>
using namespace std;//一定不要忘
int main()
{
  set<string> country;//{ }定义set
  country.insert("china");//{"china"}插入元素China
  country.insert("america");//{"China","American"}插入元素American
  country.insert("france");
  country.erase("france");//清空集合中某一个具体的元素
  for (set<string>::iterator it=country.begin();it!=country.end();it++)//迭代器使用的方法,先记住!
  {
    cout << *it << ' ';
  }
  return 0;
}

最好先记住迭代器于for循环中使用的方法


七、清空

clear()函数用于清空set,同时会清空set所占的内存

相关文章
|
安全 区块链
DAPP去中心化质押LP博饼交易系统开发|步骤逻辑|详情模式
智能合约就是一种把我们生活中的合约数字化,当满足一定条件后
|
知识图谱
|
10月前
|
存储 监控 算法
在进行精度控制时,如何避免舍入误差的累积?
【10月更文挑战第29天】通过选择合适的精度控制方法、优化计算顺序和方式、运用误差补偿技术以及建立数据验证与监控机制等多种手段的综合运用,可以有效地避免舍入误差的累积,提高计算结果的精度和可靠性,满足各种对精度要求较高的应用场景的需求。
|
11月前
|
人工智能 自然语言处理 机器人
如何从0部署一个大模型RAG应用
本文介绍了如何从零开始部署一套RAG应用,并将其集成到移动端,如钉钉群聊中。应用场景包括客服系统、智能助手、教育辅导和医疗咨询等。通过阿里云PAI和AppFlow,您可以轻松部署大模型RAG应用,并实现智能化的问答服务。具体步骤包括准备向量检索库、训练私有模型、部署RAG对话应用、创建钉钉应用及配置机器人等。
1789 2
|
SQL 关系型数据库 MySQL
django drf 初始化配置(mysql、跨域访问、默认用户模型)和用户模型重写,数据迁移,解决用户模型重写后无法创建超级用户的问题
django drf 初始化配置(mysql、跨域访问、默认用户模型)和用户模型重写,数据迁移,解决用户模型重写后无法创建超级用户的问题
|
人工智能 并行计算 Linux
cuDF:加快数据处理流程的DataFrame库
数据科学家常用的工具
1706 0
|
4天前
|
人工智能 运维 安全
|
2天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!