C++教程
C++控制语句
C++函数
C++数组
C++指针
C++对象
C++继承
C++多态
C++抽象
C++常用
C++ STL教程
C++迭代器
C++程序

C++ Map swap()

C++ Map swap()函数

C++ Map swap()函数用于交换(或交换)两个 Map 的内容,但两者 Map 的类型必须相同,尽管大小可能会有所不同。

语法

void swap (map& x);

参数

x : 与之交换内容的 Map 容器。

返回值

示例1

让我们看一个简单的示例,将一个 Map 的元素交换到另一个。
#include <iostream>
#include <map>
using namespace std;
int main(void) {
   map<char, int> m1 = {
      {'a', 1},
      {'b', 2},
      {'c', 3},
      {'d', 4},
      {'e', 5},
      };
   map<char, int> m2;
   m2.swap(m1);
   cout << "Map contains following elements" << endl;
   for (auto it = m2.begin(); it != m2.end(); ++it)
      cout << it->first << " = " << it->second << endl;
   return 0;
}
输出:
Map contains following elements
a = 1
b = 2
c = 3
d = 4
e = 5
在上面的示例中, Map m1具有五个元素,而m2为空。当您将m1交换为m2时,m1的所有元素都将交换为m2、

示例2

让我们看一下交换两个 Map 内容的简单示例。
#include <iostream>
#include <map>
using namespace std;
int main ()
{
  map<char,int> map1,map2;
  map1['x']=100;
  map1['y']=200;
  map2['a']=110;
  map2['b']=220;
  map2['c']=330;
  map1.swap(map2);
  cout << "map1 contains:\n";
  for (map<char,int>::iterator it=map1.begin(); it!=map1.end(); ++it)
    cout << it->first << " => " << it->second << '\n';
  cout << "map2 contains:\n";
  for (map<char,int>::iterator it=map2.begin(); it!=map2.end(); ++it)
    cout << it->first << " => " << it->second << '\n';
  return 0;
}
输出:
map1 contains:
a => 110
b => 220
c => 330
map2 contains:
x => 100
y => 200
在上面的示例中,两个 Map 即map1和map2的内容彼此交换。

示例3

让我们看一个简单的示例交换两个 Map 的内容。
#include<iostream>
#include<map>
using namespace std;
 
int main()
{
    // Take any two maps
    map<int, char> map1, map2;
 
    map1[1] = 'a';
    map1[2] = 'b';
    map1[3] = 'c';
    map1[4] = 'd';  
 
    map2[5] = 'w';
    map2[6] = 'x';
    map2[7] = 'y';
 
    // Swap elements of maps
    swap(map1, map2);
 
    // Print the elements of maps
    cout << "map1:\n"<< "\tKEY\tELEMENT\n";
    for (auto it = map1.begin();
         it != map1.end(); it++)
 
        cout << "\t" << it->first << "\t" << it->second << '\n';
 
    cout << "map2:\n"<< "\tKEY\tELEMENT\n";
    for (auto it = map2.begin();
         it != map2.end(); it++)
 
        cout << "\t" << it->first << "\t" << it->second << '\n';
 
    return 0;
}
输出:
map1:
  KEY ELEMENT
  5 w
  6 x
  7 y
map2:
  KEY ELEMENT
  1 a
  2 b
  3 c
  4 d
在上面的示例中,另一种形式的swap()函数用于交换两个 Map 的内容。

示例4

让我们看看简单的例子。
#include <iostream>
#include <string>
#include <map>
using namespace std;
void show(const char *msg, map<string, int> mp);
int main() {
  map<string, int> m1, m2;
  m1.insert(pair<string, int>("A", 100));
  m1.insert(pair<string, int>("G", 300));
  m1.insert(pair<string, int>("B", 200));
  // Exchange the contents of m1 and m2.
  cout << "Exchange m1 and m2.\n";
  m1.swap(m2);
  show("Contents of m2: ", m2);
  show("Contents of m1: ", m1);
 // Clear m1.
  m1.clear();
  if(m1.empty()) cout << "m1 is now empty.";
  return 0;
}
// Display the contents of a map<string, int> by using an iterator.
void show(const char *msg, map<string, int> mp) {
  map<string, int>::iterator itr;
  cout << msg << endl;
  for(itr=mp.begin(); itr != mp.end(); ++itr)
    cout << "  " << itr->first << ", " << itr->second << endl;
  cout << endl;
}
输出:
Exchange m1 and m2.
Contents of m2: 
  A, 100
  B, 200
  G, 300
Contents of m1: 
m1 is now empty.
在上面的示例中,将 Map m1的内容交换到 Map m2,并且在清除了交换m1 Map 之后。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4