C++ 集合插入和删除2024 年 8 月 28 日 | 阅读 6 分钟 Set 是 C++ 中内置的一种容器,其概念与数学中描述的集合类似。Set 与其他容器的不同之处在于,它只包含不同的元素,并且这些元素可以按排序顺序遍历。深入理解 set 在竞争性编程和解决算法问题中非常重要。本文将讨论 C++ 中的 set 插入 和 删除。 Set 插入我们可以通过使用 std::set 的两个成员方法将元素插入到 set 容器中:
1. 使用 insert() 函数进行插入语法:1 insert() 方法 用于插入 set 的组件。插入后,元素会重新排序,set 也会排序。此函数可以通过三种不同的方式执行。 此函数向 set 添加一个元素。当传入的元素不在 set 中时,会发生插入。它返回一个 指针对。第一个元素指向已存在或已添加的元素。第二个元素返回布尔结果 “true” 或 “false”。 语法:2 在此实现中,指针的指示与要插入的元素一起给出。提示指针帮助 insert() 确定插入应该发生的位置。因此,尝试缩短分配元素所需的时间。提示指针不需要在指定位置插入。此函数返回元素插入的位置作为指针。 语法:3 必须使用此插入类型将其他容器中的元素添加到 set。如果源容器中已找到重复组件,则不添加它们。 示例 我们来看一个例子来演示 C++ 中使用 insert 函数进行 set 插入 输出 Newly inserted element The elements of the set after the first insertion are 30 The elements of the set after the second insertion are: 30 34 The elements of the set after the third insertion are: 25 26 30 34 2. 使用 emplace() 函数emplace() 函数 也用于将组件插入到 Set 中。此函数与上面解释的 "insert()" 类似,唯一的区别是元素在元素插入的确切位置 “就地” 构建,而 insert() 则复制已存在的对象。 emplace() 的语法 此方法将 set 的元素总数增加一。它返回一个带有指针对的对象,其中第一个是指向插入元素当前位置的迭代器,第二个是带有布尔值的变量,指示元素是已存在还是新生成。 emplace_hint() 的语法 通过 "hint_iterator" 进行迭代以获取插入点的提示,这可能会减少插入插入元素所需的时间。它不影响插入位置。它发生在其本地定义的位置。 示例 我们来看一个例子来演示 C++ 中使用 emplace() 函数 进行 set 插入 输出 Newly inserted element The elements of the set after the first insertion are: 25 The element was inserted already The elements of the set after the second insertion are: 25 The elements of the set after the third insertion are: 25 29 Set 删除使用 erase() 函数,我们可以从 set 容器中删除元素。它是 std::set 类中的一个函数。它具有以下应用: 语法 1 删除参数中指定的值。删除后,重新排序 set。 语法 2 从其参数中迭代器指示的位置删除值。 语法 3 删除从 "begining_iterator" 到 "ending_iterator" 的元素。 示例 我们来看一个例子来演示 C++ 中使用 erase() 函数 进行 set 删除 文件名:Deletion. cpp 输出 The elements of the set after the insertion are: 2 4 6 8 10 12 14 16 18 The elements of the set after the first deletion are: 6 8 10 12 14 16 18 The elements of the set after the second deletion are:2 6 8 10 12 14 16 18 The elements of the set after the third deletion are:2 6 8 |
在基类中声明了关键字 virtual 的成员函数,并在派生类中重新定义(重写)的函数称为虚函数。后期绑定指令指示编译器在运行时执行调用的函数,通过……
阅读 3 分钟
一种称为“uckoo hashing”(布谷鸟散列)的哈希技术使用两个或多个哈希表来解决冲突。它基于多个哈希表和两个(或多个)哈希函数的概念。一个元素被移到另一个哈希表中可用的位置……
5 分钟阅读
无符号 int 是只包含非负整数作为整数的数据类型。与 C++ 有符号整数不同,无符号 int 只能保存 0-255 范围内的正整数,而有符号整数可以同时保存正负整数。因此,它可以...
阅读 4 分钟
简介:闰年是公历中比通常的 365 天多一天(2 月 29 日)的长日历年,因此共有 366 天。为了保持与地球绕太阳运行的同步,每四年会增加一个闰年……
阅读 4 分钟
C 中的 Strtok 函数与此函数类似。通过分隔符将输入序列分解为标记。通过谓词提供分隔符。语法:模板:split(Result, Input, Predicate Pred); 参数:Input:一个将被搜索的容器。Pred:用于标识分隔符的谓词。此谓词应返回……
阅读 4 分钟
在 C++ 的广阔领域中,效率和表达能力是重中之重,某些功能常常是隐藏的宝石。标准模板库(STL)中的一个这样的宝石是 std::tie。在本文中,我们将讨论 std::tie,它是一个函数模板,并且具有巨大的...
阅读 3 分钟
在本文中,我们将讨论它的语法、参数和示例。什么是 static_assert? static_assert 是 C++ 中的内置功能。它允许我们在编译时声明语句。它是在 C++11 版本中引入的。此功能包含两个主要...
阅读 4 分钟
作为一名软件工程师或数据科学家,您可能需要在工作中快速计算平方根。巴比伦算法是一种流行的近似平方根的方法。在本文中,我们将探讨 C++ 中的巴比伦算法求平方根,并讨论...
阅读 3 分钟
生物信息学序列比对概述 序列比对是生物信息学中的一项基本任务,涉及 DNA、RNA 或蛋白质等生物序列的比较,以识别相似性和差异性。此过程对于理解不同物种之间的进化关系、注释基因和破译...
阅读 13 分钟
数值分析的一个重要部分是在预定范围内查找连续函数根的过程。在这种情况下,二分法提供了一种查找根的简单方法,有时也称为区间缩小法、二分查找法或二分法...。
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India