C++ multimap swap() 函数

30 Aug 2024 | 3 分钟阅读

C++ multimap 的 swap() 函数用于交换(或互换)两个 multimap 的内容,但这两个 multimap 必须是相同类型,尽管它们的大小可能不同。

语法

参数

x: 要与其交换内容的 multimap 容器。

返回值

复杂度

常量。

迭代器有效性

所有指向两个容器中元素的迭代器、引用和指针都保持有效,但现在它们指向另一个容器中的元素,并在其中进行迭代。

数据竞争

容器和 x 都会被修改。

异常安全

如果抛出异常,对容器没有影响。

示例 1

让我们看一个简单的例子,将一个 multimap 的元素交换到另一个 multimap 中。

输出

Multimap m2 contains following elements
a = 1
b = 2
b = 4
c = 3
c = 5

在上面的例子中,multimap m1 有五个元素,而 m2 是空的。当您将 m1 与 m2 交换时,m1 的所有元素都会被交换到 m2 中。

示例 2

让我们看一个简单的例子来交换两个 multimap 的内容。

输出

multimap1 contains:
a => 110
a => 330
b => 220
multimap2 contains:
x => 100
x => 200

在上面的例子中,两个 multimap 即 multimap1 和 multimap2 的内容相互交换了。

示例 3

让我们看一个简单的例子来交换两个 multimap 的内容。

输出

multimap1:
	KEY	ELEMENT
	1	x
	2	y
	2	z
multimap2:
	KEY	ELEMENT
	1	a
	2	b
	2	c
	4	d

在上面的例子中,使用了另一种形式的 swap() 函数来交换两个 multimap 的内容。

示例 4

让我们看一个简单的例子

输出

Exchange m1 and m2.
Contents of m2: 
  A, 100
  B, 300
  B, 200

Contents of m1: 

m1 is now empty.

在上面的例子中,multimap m1 的内容被交换到 multimap m2 中,交换后 m1 multimap 已被清空。

下一个主题C++ multimap