English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Tutoriel de base

C++ Contrôle de flux

C++ Fonction

C++ Tableau & chaîne

C++ Structure de données

C++ Classe & objet

C++ Pointeur

C++ Héritage

C++ Tutoriel STL

C++ manuel de référence

C++ Utilisation et exemple de la fonction swap() de map

C++ STL map (conteneur)

C ++ map swap()La fonction est utilisée pour échanger (ou échanger) le contenu de deux map, mais les deux map doivent être du même type, bien que la taille puisse varier.

grammaire

void swap (map& x);

paramètres

x: pour le conteneur de map utilisé pour échanger le contenu.

valeur de retour

pas

实例1

Voyons un exemple simple pour échanger les éléments d'un map dans un autre.

#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 contient les éléments suivants" << endl;
   for (auto it = m2.begin(); it != m2.end(); ++it)
      cout << it->first << " << " << it->second << endl;
   return 0;
}

Sortie :

Map contient les éléments suivants
a = 1
b = 2
c = 3
d = 4
e = 5

dans l'exemple ci-dessus, Map m1a cinq éléments, tandis que m2est vide. Lorsque vous mettez m1est échangé en m2lorsque m1tous les éléments de l'ensemble2.

实例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 contient:\n";
  for (map<char, int>::iterator it = map1.begin(); it != map1.end(); ++it)
    cout << it->first << " << " << it->second << \n';
  cout << "map2 contient:\n";
  for (map<char, int>::iterator it = map2.begin(); it != map2.end(); ++it)
    cout << it->first << " << " << it->second << \n';
  return 0;
}

Sortie :

map1 contient :
a => 110
b => 220
c => 330
map2 contient :
x => 100
y => 200

Dans l'exemple ci-dessus, deux Map (c'est-à-dire map1et map2)的内容相互交换。

实例3

让我们看一个简单的示例,交换两个map的内容。

#include<iostream>
#include<map>
using namespace std;
 
int main()
{
    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\";
 
    //交换map的元素
    swap(map1, map2);
 
    //打印map的元素
    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;
}

Sortie :

map1:
	KEY	ELEMENT
	5	w
	6	x
	7	y
map2:
	KEY	ELEMENT
	1	a
	2	b
	3	c
	4	d

在上面的示例中,另一种形式的swap()函数用于交换两个映射的内容。

实例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));
  // échanger m1et m2的内容。
  cout << "交换m1et m2。\n";
  m1.swap(m2);
  show("Contents of m2: ", m2);
  show("Contents of m1: ", m1);
 // Clear m1.
  m1.clear();
  if(m1.empty()) cout << "m1 为空.";
  return 0;
}
// 使用迭代器显示map<string, int>的内容。
void show(const char *msg, map<string, int> mp) {
  iterator itr;
  cout << msg << endl;
  for(itr=mp.begin(); itr != mp.end(); ++itr)
    cout << " 	 " << itr->first << ", " << itr->second << endl;
  cout << endl;
}

Sortie :

échanger m1et m2.
m2Contenu: 
  A, 100
  B, 200
  G, 300
m1Contenu: 
m1 est vide.

Dans l'exemple ci-dessus, Mapm1le contenu a été échangé vers Map m2et dans l'échange de Map m1 a été supprimée.

C++ STL map (conteneur)