21xrx.com
2024-09-20 05:27:07 Friday
登录
文章检索 我的文章 写文章
C++中set函数详解
2023-06-29 02:39:58 深夜i     --     --
C++ set函数 详解

在C++语言中,set函数是一个常用的数据结构,它是一个集合容器,可以存储一系列不相同的元素。set函数通过内部的红黑树实现了元素的自动排序和去重。这篇文章将详细介绍set函数的使用方法和常见的使用场景。

一、 set函数的定义和声明

set函数是一个头文件 中提供的模板类,其定义如下:

 cpp

template<

  class T,

  class Compare = less<T>,

  class Allocator = allocator<T>

> class set;

set函数的定义中有三个模板参数:

1、T:表示set容器里面元素的类型

2、Compare:表示元素比较的方法,可以指定元素的比较方法,默认为std::less

3、Allocator:表示set容器使用的内存分配器,默认为std::allocator

二、 set函数的创建和初始化

set函数可以通过默认构造函数进行创建和初始化:


set<int> mySet;

也可以通过指定初始值进行创建和初始化:

 cpp

set<int> mySet = 2;

另外,set函数还可以通过拷贝构造函数进行创建和初始化:

 cpp

set<int> mySet2(mySet);

三、 set函数的插入和删除

1、 插入元素

set函数提供了insert()函数用来向set容器中插入元素,如果该元素已存在,则insert()函数不会插入重复的元素,同时set容器保持原有的元素顺序。例如:


set<int> mySet;

mySet.insert(1);

mySet.insert(2);

mySet.insert(3);

// mySet中的元素为1

2、 删除元素

set函数提供了erase()函数和clear()函数,erase()函数用来删除set容器中的指定元素,clear()函数用来清空set容器中的所有元素。例如:

 cpp

set<int> mySet = 3;

mySet.erase(1);

// mySet中的元素变为 3

mySet.clear();

// mySet为空

四、 set函数的查找和遍历

1、 查找元素

set函数提供了find()函数,用来查找set容器中是否存在指定元素。如果存在,返回该元素的地址,否则返回end()迭代器。例如:

 cpp

set<int> mySet = 1;

auto it = mySet.find(1);

if (it != mySet.end())

 cout << "元素找到了!" << endl;

else

 cout << "元素未找到!" << endl;

2、 遍历元素

set函数提供了迭代器,可以使用for循环和auto关键字对set容器中的元素进行遍历。例如:


set<int> mySet = 1;

for (auto it = mySet.begin(); it != mySet.end(); ++it) {

 cout << *it << " ";

}

// 输出:1 2 3

五、 set函数的常见使用场景

1、 去重

set函数是一个自动去重的容器,可以方便地去重。例如:


vector<int> vec = 2;

set<int> mySet(vec.begin(), vec.end());

// mySet中的元素为 3

2、 排序

set函数使用内部的红黑树实现元素的自动排序,可以方便地进行排序操作。例如:

 cpp

set<int> mySet = 1;

// mySet中的元素为1

3、 查找

set函数提供了find()函数,可以方便地查找元素。例如:


set<string> mySet = "apple";

auto it = mySet.find("banana");

if (it != mySet.end())

 cout << "元素找到了!" << endl;

else

 cout << "元素未找到!" << endl;

因此,set函数是一个非常实用的数据结构,有着广泛的应用场景。对于需要去重或进行自动排序的数据集,使用set函数可以更加方便地进行操作。在实际编程中,开发者可以根据自己的需求,灵活使用set函数来实现自己的程序功能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复