C ++ STL中的map :: at()和map :: swap()

在本文中,我们将讨论C ++ STL中map::at()和map::swap()函数的工作,语法和示例。

什么是C ++ STL中的映射?

映射是关联容器,它有助于按特定顺序存储由键值和映射值的组合形成的元素。在映射容器中,数据始终在内部借助其关联的键进行排序。映射容器中的值通过其唯一键访问。

什么是map::at()?

map::at()函数是C ++ STL中的内置函数,该函数在  header file. at() is used to access a specific element of the associated map container. This function returns a reference to the specific value which is associated with the key.

如果存在键与映射容器的任何键都不匹配的情况,则该函数将引发out_of_range异常。

语法

map_name.at(key& k);

参数

该函数接受一个参数,即

  • k-这是我们要参考的关键。

返回值

此函数返回对与我们要查找的键k关联的值的引用。

示例

输入值

std::map<int> mymap;
mymap.insert({‘a’, 10});
mymap.insert({‘b, 20});
mymap.insert({‘c, 30});
mymap.at(‘b’);

输出结果

b:20

示例

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> TP_1;
   map<int, int> TP_2;
   TP_1[1] = 10;
   TP_1[2] = 20;
   TP_1[3] = 30;
   TP_1[4] = 40;
   TP_2[5] = 50;
   TP_2[6] = 60;
   TP_2[7] = 70;
   cout<<"Elements at TP_1[1] = "<< TP_1.at(1) << endl;
   cout<<"Elements at TP_1[2] = "<< TP_1.at(2) << endl;
   cout<<"Elements at TP_1[3] = "<< TP_1.at(3) << endl;
   cout<<"\nElements at TP_2[7] = "<< TP_2.at(7) << endl;
   cout<<"Elements at TP_2[5] = "<< TP_2.at(5) << endl;
   return 0;
}

输出结果

Elements at TP_1[1] = 10
Elements at TP_1[2] = 20
Elements at TP_1[3] = 30
Elements at TP_1[7] = 70
Elements at TP_1[5] = 50

什么是map::swap()?

map::swap()函数是C ++ STL中的内置函数,在<map>头文件中定义。swap()用于交换两个映射容器的内容。此函数交换两个映射容器的值,而与两个映射容器的大小无关。

调用此函数时,它将使用另一个映射容器的参数,并与关联的容器交换内容。

语法

map_name.swap(map& map_name2);

参数

该函数接受一个参数,即

  • map_name2-这是另一个映射容器的对象,我们要与关联的映射容器交换其数据。

返回值

此函数不返回任何内容。

示例

输入值

std::map<int> odd, eve;
odd.insert({‘a’, 1});
odd.insert({‘b’, 3});
odd.insert({‘c’, 5});
eve.insert({‘d’, 2});
eve.insert({‘e’, 4});
eve.insert({‘f’, 6});
odd.swap(eve);

输出结果

Odd: d: 2 e:4 f:6
Eve: a:1 b:3 c:5

示例

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> TP_1;
   map<int, int> TP_2;
   TP_1[1] = 10;
   TP_1[2] = 20;
   TP_1[3] = 30;
   TP_1[4] = 40;
   TP_2[5] = 50;
   TP_2[6] = 60;
   TP_2[7] = 70;
   swap(TP_1, TP_2);
   cout<<"Elements of TP_1 after swap:\n"<< "\tKEY\tELEMENT\n";
   for (auto i = TP_1.begin(); i!= TP_1.end(); i++) {
      cout << "\t" << i->first << "\t" << i->second << '\n';
   }
   cout << "Elements of TP_2 after swap:\n"<< "\tKEY\tELEMENT\n";
   for (auto i = TP_2.begin(); i!= TP_2.end(); i++) {
      cout << "\t" << i->first << "\t" << i->second << '\n';
   }
   return 0;
}

输出结果

Elements of TP_1 after swap:
KEY    ELEMENT
5       50
6       60
7       70
Elements of TP_2 after swap:
KEY    ELEMENT
1       10
2       20
3       30
4       40