当前位置:网站首页 > 技术博客 > 正文

swap函数实现方法



C++ STL map(容器)

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

void swap (map& x);

x:用于交换内容的map容器。

没有

让我们看一个简单的示例,将一个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包含以下元素" << endl;    for (auto it = m2.begin(); it != m2.end(); ++it)       cout << it->first << " = " << it->second << endl;    return 0; }

输出:

Map包含以下元素 a = 1 b = 2 c = 3 d = 4 e = 5

在上面的示例中,Map m1具有五个元素,而m2为空。当您将m1交换为m2时,m1的所有元素都将交换为m2。

让我们看一个简单的示例,交换两个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 包含: ";   for (map<char,int>::iterator it=map1.begin(); it!=map1.end(); ++it)     cout << it->first << " => " << it->second << ' ';   cout << "map2 包含: ";   for (map<char,int>::iterator it=map2.begin(); it!=map2.end(); ++it)     cout << it->first << " => " << it->second << ' ';   return 0; }

输出:

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

在以上示例中,两个Map(即map1和map2)的内容相互交换。

让我们看一个简单的示例,交换两个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: "<< " KEY ELEMENT ";     for (auto it = map1.begin();          it != map1.end(); it++)         cout << " " << it->first << " " << it->second << ' ';     cout << "map2: "<< " KEY ELEMENT ";     for (auto it = map2.begin();          it != map2.end(); it++)         cout << " " << it->first << " " << it->second << ' ';     return 0; }

输出:

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

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

让我们看一个简单的实例。

#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));   // 交换m1和m2的内容。   cout << "交换m1和m2。 ";   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) {   map<string, int>::iterator itr;   cout << msg << endl;   for(itr=mp.begin(); itr != mp.end(); ++itr)     cout << "  " << itr->first << ", " << itr->second << endl;   cout << endl; }

输出:

交换m1和m2。 m2内容:   A, 100   B, 200   G, 300 m1内容: m1 为空.

在上面的示例中,Mapm1的内容被交换到Map m2,并且在交换Map m1 后已被清除。

C++ STL map(容器)

  • 上一篇: 黑客工具集
  • 下一篇: csrf攻击解决方案
  • 版权声明


    相关文章:

  • 黑客工具集2025-05-22 07:01:05
  • aspectj教程2025-05-22 07:01:05
  • 余弦相似度值域2025-05-22 07:01:05
  • 单臂路由和ospf的综合2025-05-22 07:01:05
  • ajax请求写法2025-05-22 07:01:05
  • csrf攻击解决方案2025-05-22 07:01:05
  • timeval和timespec2025-05-22 07:01:05
  • 双硬盘怎么装双系统2025-05-22 07:01:05
  • linux defunct2025-05-22 07:01:05
  • vulkan与dx12选择2025-05-22 07:01:05