C++ map insert: In the previous article, we have discussed about Different ways to iterate over a set in C++. Let us learn Map Insert in C++ Program.
C++ Map Insert Example
We are going to see how we can use the std::map
in C++.
The std::map
stores data in the form of key and values. If we want to add an element into the map we can use the insert( )
function.
Syntax- pair<iterator,bool> insert (const value_type& element);
It will accept the key and the value and it returns a map iterator with a boolean in the following form-
pair<map_iterator,boolean>
The boolean value represents the result of the operation i.e. if it is
- Boolean == true – The insertion operation was successful and the iterator holds the location of the newly added element.
- Boolean == false – The insertion failed and the iterator contains the location of the pair passed.
Let’s see by an example
#include <iostream> #include <map> #include <string> #include <iterator> #include <algorithm> void checkRes ( std::pair<std::map<std::string, int>::iterator, bool> &res) { // Check if Insertion was successful if (res.second == false) { // Insertion Failed std::cout << "Unable to insert . duplicate key :: " << res.first->first << std::endl; } else { // Insertion was successful std::cout << "Successfully added , key :: " << res.first->first << std::endl; } } int main() { // map of string and int as key-value std::map<std::string, int> WordMap; // Pair of the map iterator and boolean std::pair<std::map<std::string, int>::iterator, bool> res; // Insert an element in the map res = WordMap.insert(std::pair<std::string, int>("one", 1)); // Check the result of insertion checkRes(res); // Inserting an element in the map res = WordMap.insert(std::pair<std::string, int>("two", 2)); // Check the result of insertion checkRes(res); // Inserting an element in the map res = WordMap.insert(std::pair<std::string, int>("three", 3)); // Check the result of insertion checkRes(res); // Inserting an element in the map res = WordMap.insert(std::pair<std::string, int>("four", 4)); // Check the result of insertion checkRes(res); // Inserting an element in the map res = WordMap.insert(std::pair<std::string, int>("five", 5)); // Check the result of insertion checkRes(res); //A map iterator that points to the beginning of the map std::map<std::string, int>::iterator it = WordMap.begin(); std::cout << "____________________________" << std::endl; //Iterating using for_each loop std::for_each(WordMap.begin(), WordMap.end(), [](std::pair<std::string, int> elem) { // Get the key std::string word = elem.first; // getting the value associated with the key int count = elem.second; std::cout << word << " :: " << count << std::endl; }); return 0; }
Output : Successfully added , key :: one Successfully added , key :: two Successfully added , key :: three Successfully added , key :: four Successfully added , key :: five ____________________________ five :: 5 four :: 4 one :: 1 three :: 3 two :: 2