C++ set erase()2024年8月30日 | 5分钟阅读 C++ set 的 **erase()** 函数用于从 set 容器中移除与给定键关联的单个元素,或移除一个范围 ([first, last)) 的元素。因此,大小将根据移除的元素数量而减少。 语法参数**position**:指向要从 set 中移除的单个元素的迭代器。 **val**:要从 set 中移除的值。 first: 要擦除范围的起始。 last: 要擦除范围的结束。 返回值它返回一个指向被删除元素之后元素的迭代器,或者返回被删除元素的数量。 复杂度erase(position): 摊销常数时间。 erase (val): 对容器大小取对数时间。 **erase(first,last)**:与 first 和 last 之间的距离呈线性关系。 迭代器有效性指向被函数移除的元素的迭代器、引用和指针将失效。 所有其他迭代器、指针和引用保持其有效性。 数据竞争容器被修改。 被移除的元素被修改。在容器中迭代范围是不安全的,尽管并发访问其他元素是安全的。 异常安全此函数不会抛出异常。 如果指定了无效范围或位置,则会导致未定义行为。 示例 1让我们看一个使用迭代器擦除元素的简单示例。 输出 Before erasing the element: 10 20 30 After erasing the element: 10 20 30 在上面的示例中,元素通过迭代器 it 被擦除。 示例 2让我们看一个简单的例子来擦除给定键值的 set 元素 输出 Before erasing the element: 10 20 30 40 After erasing the element: 10 20 40 在上面的例子中,erase(value) 函数从 set 中移除了值 30。 示例 3让我们看一个使用给定范围擦除元素的简单示例 输出 Before erasing the element are: Size is: 3 10 20 30 After erasing the element are: Size is: 0 在上面的例子中,erase(first, last) 函数用于擦除给定范围(即从 begin 到 end)的元素。 示例 4让我们看一个简单的例子来擦除 set 中的所有奇数 输出 After erasing odd numbers, elements are: 2, 4, 6, 8, 10, 12, 14, 在上面的示例中,所有奇数都被擦除,并显示偶数。 示例 5让我们看另一个例子 输出 Starting data of set s1 is: [Bert] [Bob] [Bobby] [Rob] [Robert] size() == 5 After the 2nd element is deleted, the set s1 is: [Bert] [Bobby] [Rob] [Robert] size() == 4 Starting data of set s2 is: [growl] [hiss] [meow] [purr] [yowl] size() == 5 After the middle elements are deleted, the set s2 is: [growl] [yowl] size() == 2 Starting data of set s3 is: [A] [A#] [B] [C] [C#] [D] [D#] [E] [E#] [F] [F#] [G] [G#] size() == 13 The number of elements removed from s3 is: 1. After the element with a key of "E#" is deleted, the set s3 is: [A] [A#] [B] [C] [C#] [D] [D#] [E] [F] [F#] [G] [G#] size() == 12 下一个主题Set swap() 函数 |
C++ set count() C++ 用于返回容器中找到的元素数量。由于 set 容器不包含任何重复元素,此函数实际上返回 1,如果 set 容器中存在值为 val 的元素,否则返回 0。...
阅读 4 分钟
C++ set crbegin() C++ 用于返回指向集合容器中最后一个元素的常量反向迭代器。集合的常量反向迭代器以反向方向移动,并递增直到到达集合容器的开头(第一个元素)并且...
阅读 3 分钟
C++ std 运算符<= C++ std 运算符<= 是 C++ 中 set 的非成员重载函数。此函数用于检查第一个 set 是否小于或等于另一个 set。注意:运算符 <= 按顺序比较元素,并在第一次不匹配时停止比较。语法模板 <class...
5 分钟阅读
C++ set insert() C++ set insert() 用于在 set 中插入新元素。由于 set 中的元素键是唯一的,因此插入操作首先检查给定键是否已存在于 set 中,如果键存在于...
5 分钟阅读
C++ set begin() C++ 用于返回指向集合容器第一个元素的迭代器。语法 iterator begin(); ...
阅读 3 分钟
C++ std operator== C++ std operator== 是 C++ 中 set 的非成员重载函数。此函数用于检查两个 set 是否相等。注意:set 对象之间的比较基于元素的成对比较。两个 set 相等...
阅读 4 分钟
C++ set 运算符= set 中运算符= 有以下三种用法:运算符= 用于通过替换其旧内容(或复制内容)来为 set 容器分配新内容,并在必要时修改大小。运算符= 用于将一个 set 容器的内容移动到...
阅读 4 分钟
C++ set crend() C++ 用于返回一个指向 set 结束(不是最后一个元素,而是最后一个元素之后)的常量迭代器,按反向顺序。这类似于非反向容器的第一个元素之前的元素。注意:- 这是一个...
阅读 3 分钟
C++ set clear() C++ 用于删除 set 容器的所有元素。它清除 set 并将其大小转换为 0。语法 void clear(); //直到 C++ 11 void...
阅读 3 分钟
C++ set value_comp() C++ 返回一个比较对象。此函数用于比较两个元素,以检查第一个元素的键是否在第二个元素之前。它接受两个相同类型的参数,如果第一个参数在第二个参数之前,则返回 true...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India