C++ set operator=

30 Aug 2024 | 3 分钟阅读

set 中 operator= 有以下三种用法

  1. operator= 用于通过替换其旧内容(或复制内容)将新内容分配给 set 容器,并在必要时修改大小。
  2. operator= 用于将一个 set 容器的内容移动到另一个 set 容器中,并在必要时修改大小。
  3. operator= 用于将初始化列表中的元素复制到 set 容器中。

语法

复制 (1):- 将 x 中的所有元素复制到 set 容器中。

移动 (2):- 将 x 的内容移动到 set 容器中。

initializer_list (3):- 将 il 的元素复制到 set 容器中。

参数

x: 相同类型的 set 对象。

il:初始化列表对象。

返回值

this指针。

复杂度

复制赋值:与大小呈线性关系。

移动赋值:与当前容器大小呈线性关系。

初始化列表赋值:与大小呈对数关系。

迭代器有效性

与此 set 相关的所有引用、迭代器和指针都将失效。

数据竞争

所有复制的元素都将被访问。

移动赋值会修改 x。

set 容器及其所有元素都将被修改。

异常安全

如果抛出异常,容器将处于有效状态。

示例 1

让我们看一个将一个 set 的内容复制到另一个 set 的简单示例

输出

Set s1 contains following elements
10
20
30

After copying the elements from s1 to s2... 

Set s2 contains following elements
10
20
30

在上面的示例中,operator = 用于将一个 set s1 的内容复制到另一个 set s2。

示例 2

让我们看一个将一个 set 的元素移动到另一个 set 的简单示例

输出

Set m1 contains following elements
a, e, i, o, u, 

After moving the elements from s1 to s2?

Set s2 contains following elements
a, e, i, o, u,

在上面的示例中,operator = 用于将一个 set s1 的内容移动到另一个 set s2。

示例 3

让我们看一个将初始化列表中的内容复制到 set 的简单示例

输出

Set contains the following elements
100
200
300
400
500

在上面的示例中,operator = 用于将初始化列表中的内容复制到 set m。

示例 4

让我们看一个简单的例子

输出

Size Of c1:0
Size Of c2:6

在上面的示例中,有两个 set c1 和 c2。c1 有 7 个元素,c2 为空,但在将 c1 赋值给 c2 后,c1 的大小变为 0,c2 的大小变为 7。


下一个主题Set begin() 函数