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

📅  最后修改于: 2021-05-31 19:14:19             🧑  作者: 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. 位置:它仅指向要开始进行插入搜索操作的位置,以加快处理速度。插入是根据容器遵循的顺序进行的。

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

下面是说明相同内容的程序:

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等的更多准备工作,请参阅“完整面试准备课程”