当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ map::at()、map::swap()用法及代码示例



Map是STL中的容器,用于以键值对的形式存储元素。在内部,映射中的元素始终按其键排序。Map主要实现为二进制搜索树。

map::at()
at()函数用于将引用返回给与键k关联的元素。

用法:


map1.at(k)

参数:
k is the Key value of the 
element whose associated value is accessed.

返回:它返回对键值等于k的元素的关联值的引用。

例子:

Input: map1 = {
                 {1, 'a'},
                 {2, 'b'},
                 {3, 'c'},
                 {4, 'd'}
               }
        map1.at(2);
Output:b

Input: map2 = {
                 {'w', 1},
                 {'x', 2},
                 {'y', 3}
               }
        map2.at('w');
Output:1

// CPP program to illustrate 
// Implementation of swap() function 
#include <bits/stdc++.h> 
using namespace std; 
  
int main() 
{ 
    // Take any two maps 
    map<int, char> map1; 
    map<char, int> map2; 
  
    map1[1] = 'a'; 
    map1[2] = 'b'; 
    map1[3] = 'c'; 
    map1[4] = 'd'; 
  
    map2['w'] = 1; 
    map2['y'] = 2; 
    map2['z'] = 3; 
  
    // Print the associated element 
    cout << "Element at map1[2] = "
         << map1.at(2) << endl; 
  
    cout << "Element at map2['w'] = "
         << map2.at('w') << endl; 
  
    return 0; 
}

输出:

Element at map1[2] = b
Element at map2['w'] = 1

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

map1.swap(map2)
       OR
swap(map1, map2)

参数:
map1 is the first map object.
map2 is the second map object.

返回值:没有

例子:

Input:map1 = {
                 {1, 'a'},
                 {2, 'b'},
                 {3, 'c'},
                 {4, 'd'}
               }
        map2 = {
                 {5, 'w'},
                 {6, 'x'},
                 {7, 'y'}
               }
      swap(map1, map2)

Output:map1 = {
                 {5, 'w'},
                 {6, 'x'},
                 {7, 'y'}
                }
         map2 = {
                 {1, 'a'},
                 {2, 'b'},
                 {3, 'c'},
                 {4, 'd'}
                }

// CPP program to illustrate 
// Implementation of swap() function 
#include <bits/stdc++.h> 
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 queues 
    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


相关用法


注:本文由纯净天空筛选整理自AKASH GUPTA 6大神的英文原创作品 map::at() and map::swap() in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。