Check if a key is present in a C++ map

Hello guys, here in this article we will learn how to check if a key is present in a C++ map or not. So first of all, we need to learn what is a map. The map is a data structure that can store elements in a combination of a key-value and a mapped value.

Suppose we want to store the name and roll number of each student, then the map will look like below:

<4,Ram>
<6,Shyam>
<10,faiz>
<16,Harpreet>
<12,Shivam>

Creating map

map<data_type1,data_type2> map_name;

Inserting in map

We use built-in insert() function to insert an element in map.

map_name.insert({key,value});

Example

#include <iostream>
#include<map>
using namespace std;

int main() {
  map<int,string> mp;   //declaring map
  
  mp.insert({1,"INDIA"});    //inserting in map 
  mp.insert({2,"CHINA"});    //inserting in map 
  mp.insert({3,"USA"});      //inserting in map 
  mp.insert({4,"RUSSIA"});   //inserting in map 
  
  for(auto i=mp.begin();i!=mp.end();i++)
  {  
     
    cout << i->first <<" "<<i->second<<endl;    //i->first will print key.
                                                //i->second will print value.
      
  }
  
  return 0;
}
1 INDIA
2 CHINA
3 USA
4 RUSSIA

 

In the above example, I have used an auto keyword you can read more about it by click here.

Now we want to check if a key is present in a C++ map.

for this, we will check if   i->first is equal to a given (what we want to check) key.

#include <iostream>
#include<map>
using namespace std;

int main() {
	map<int,string> mp;  
	
	mp.insert({1,"INDIA"});  //inserting in map.
	mp.insert({2,"CHINA"});  //inserting in map.
	mp.insert({3,"USA"});    //inserting in map.
	mp.insert({4,"RUSSIA"}); //inserting in map.
	mp.insert({5,"France"}); //inserting in map. 
	
	int key;    // declaring key variable.
	 
	cout <<"enter key"<<endl;  
	
	cin>>key;   // taking key as input.
	
	bool ans=false;  // declaring bool variable and assign it to false.
	
	for(auto i=mp.begin();i!=mp.end();i++)
	{
	    
	    if(i->first==key)
	    ans=true;            //if key is variable is present then assign ans to true. 
	    
	}
	
	if(ans)   // if ans is true print key is present else not present
 	cout<<"Key :"<<key<<" is present"<<endl;
	else
	cout<<"Key :"<<key<<" is no present"<<endl;

	return 0;
}

Example 1

input
5
ouput
Key :5 is present


Example 2

input 
10
output
Key :10 is no present

Thank you.

Also, read: C++ program to print only digits from a string

Leave a Reply