C++多重集合operator=

2024年8月30日 | 阅读4分钟

多重集合中operator=有以下三种用法

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

语法

复制 (1):- 将x中的所有元素复制到多重集合容器中。

移动 (2):- 将x的内容移动到多重集合容器中。

初始化列表 (3):- 将il的元素复制到多重集合容器中。

参数

x:同类型的多重集合对象。

il:初始化列表对象。

返回值

this指针。

复杂度

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

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

初始化列表赋值:最多与大小对数相关。

迭代器有效性

所有与此多重集合容器相关的引用、迭代器和指针都将失效。

数据竞争

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

移动赋值会修改x。

多重集合容器及其所有元素都将被修改。

异常安全

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

示例 1

我们来看一个简单的例子,将一个多重集合的内容复制到另一个多重集合中

输出

Multiset s1 contains following elements
10
10
20
30

After copying the elements from s1 to s2... 

Multiset s2 contains following elements
10
10
20
30

在上面的例子中,operator = 用于将一个多重集合 s1 的内容复制到另一个多重集合 s2 中。

示例 2

我们来看一个简单的例子,将一个多重集合的元素移动到另一个多重集合中

输出

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

After moving the elements from s1 to s2... 

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

在上面的例子中,operator = 用于将一个多重集合 s1 的内容移动到另一个多重集合 s2 中。

示例 3

我们来看一个简单的例子,将初始化列表中的内容复制到多重集合中

输出

Multiset contains the following elements
100
100
200
300
300

在上面的例子中,operator = 用于将初始化列表中的内容复制到多重集合 m 中。

示例 4

让我们看一个简单的例子

输出

Size Of c1:0
Size Of c2:7

在上面的例子中,有两个多重集合c1和c2。c1有7个元素,c2是空的,但在将c1赋值给c2后,c1的大小变为0,c2的大小变为7。

下一个主题C++ multiset