📜  如何在字符串映射中插入数据?

📅  最后修改于: 2021-09-06 05:55:53             🧑  作者: Mango

地图是关联容器,以特定顺序存储元素。它将元素存储在键值和映射值的组合中。

句法:

map M

要在 C++ 中对地图使用上述语法,重要的是包含以下头文件:
头文件:

#include 

要在地图中插入数据,使用了地图中的 insert()函数。它用于在地图容器中插入具有特定键的元素。

句法:

iterator map_name.insert({key, element})

参数:它接受由要插入到地图容器中的键和元素组成的对,但它只插入唯一键。这意味着如果键已经存在于映射中,则该函数不会在映射中插入键和元素。

返回值:它返回一个指向地图中新元素的迭代器。

下面是说明相同的程序:

C++
// C++ program to store the string as
// the map value
#include 
#include 
using namespace std;
  
// Driver code
int main()
{
    // Get the Strings
    string s = "abc";
    string s1 = "bca";
    string s2 = "cba";
  
    // Declare map with both value
    // and key  having string data_type
    map m;
  
    // Insert the string in the map
    m.insert(pair(s1, s));
    m.insert(pair(s, s2));
  
    // Print the elements stored
    // in the map
    for (auto itr = m.begin();
         itr != m.end(); ++itr) {
        cout << itr->first << '\t'
             << itr->second << '\n';
    }
  
    return 0;
}


C++
// C++ program to illustrate the map
// insert(iteratorposition, {key, element})
#include 
#include 
using namespace std;
  
// Driver Code
int main()
{
    // Initialize a Map mp
    map mp;
  
    // Insert elements in random order
    mp.insert({ "abc", 30 });
    mp.insert({ "bcd", 40 });
  
    auto it = mp.find("bcd");
  
    // Insert {"dcd", 60} starting the
    // search from position where 2
    // is present
    mp.insert(it, { "dcd", 60 });
  
    // Print the element
    cout << "KEY\tELEMENT\n";
  
    for (auto itr = mp.begin();
         itr != mp.end(); ++itr) {
        cout << itr->first << '\t'
             << itr->second << '\n';
    }
  
    return 0;
}


输出:
abc    cba
bca    abc

还有另一种将数据存储在地图中的方法,以下是相同的语法:

句法:

iterator map_name.insert(iterator position, {key, element})

参数:该函数接受两个参数,如下所述:

  1. {key, element}:这指定了一对由要插入到地图容器中的键和元素组成。
  2. position:它只指向插入搜索操作开始的位置,使过程更快。插入是根据容器后跟的顺序完成的。

返回值:该函数返回一个指向容器中新元素的迭代器。

下面是说明相同的程序:

C++

// C++ program to illustrate the map
// insert(iteratorposition, {key, element})
#include 
#include 
using namespace std;
  
// Driver Code
int main()
{
    // Initialize a Map mp
    map mp;
  
    // Insert elements in random order
    mp.insert({ "abc", 30 });
    mp.insert({ "bcd", 40 });
  
    auto it = mp.find("bcd");
  
    // Insert {"dcd", 60} starting the
    // search from position where 2
    // is present
    mp.insert(it, { "dcd", 60 });
  
    // Print the element
    cout << "KEY\tELEMENT\n";
  
    for (auto itr = mp.begin();
         itr != mp.end(); ++itr) {
        cout << itr->first << '\t'
             << itr->second << '\n';
    }
  
    return 0;
}
输出:
KEY    ELEMENT
abc    30
bcd    40
dcd    60
想要从精选的视频和练习题中学习,请查看C++ 基础课程,从基础到高级 C++ 和C++ STL 课程,了解基础加 STL。要完成从学习语言到 DS Algo 等的准备工作,请参阅完整的面试准备课程