Home > Backend Development > C++ > body text

C++ program initialization dictionary

王林
Release: 2023-09-09 19:01:03
forward
1018 people have browsed it

C++ program initialization dictionary

C differs from Python in terms of the dictionary with the same name, but it has the same data structure with similar functionality. C supports mapping, which can be used in the STL class std::map. The map object contains a pair of values ​​in each entry, one is the key value and the other is the map value. Key values ​​are used to search for and uniquely identify entries in the map. While mapped values ​​are not necessarily unique, key values ​​must always be unique in the map. Let's take a look at how to use mapping.

First, let's see how to define a mapping data structure in C.

grammar

#include <map>
map <data_type 1, data_type 2> myMap;
</map>
Copy after login

Let’s take an example and see how to do this −

Example

#include <iostream>
#include <map>

using namespace std;

int main() {
   //initialising the map
   map <int, string> myMap;

   //inserting two key-value pairs
   myMap.insert({1, "Hello"});
   myMap.insert({2, "World"});

   //displaying the key-value pairs
   for (auto itr = myMap.begin(); itr != myMap.end(); ++itr) {
      cout << itr->first << " " << itr->second << endl;
   }

   return 0;
}
Copy after login

Output

1 Hello
2 World
Copy after login

In C, maps (Maps) can be initialized in different ways. The algorithm is very simple.

algorithm

  • Create a map object.

  • Assign a value to an object when it is declared.

Initialize the map using the initialization list

Using an initialization list to initialize a map is the same as initializing an array in C. We just need to assign key-value pairs when declaring the mapping, enclosed in curly braces, in the format {key, value}. The syntax is as follows.

grammar

#include <map>
map <data_type 1, data_type 2> myMap = {{key1, value1}, {key2, value2}};
Copy after login

Example

#include <iostream>
#include <map>

using namespace std;

int main() {
   //initialising the map
   map <int, string> myMap = {{1, "One"}, {2, "Two"}, {3, "Three"}};

   //displaying the key-value pairs
   for (auto itr = myMap.begin(); itr != myMap.end(); ++itr) {
      cout << itr->first << " " << itr->second << '\n';
   }

   return 0;
}
Copy after login

Output

1 One
2 Two
3 Three
Copy after login
Copy after login
Copy after login

Use assignment operator to initialize mapping

This is similar to assigning a value to a specific index in an array. We didn't mention the index, but put the key values ​​in the map subscript, just like in an array.

grammar

#include <map>
map <data_type 1, data_type 2> myMap;
myMap[key1] = value1;
</map>
Copy after login

Example

#include <iostream>
#include <map>

using namespace std;

int main() {
   //declaring the map
   map <int, string> myMap;
   myMap[1] = "One";
   myMap[2] = "Two";
   myMap[3] = "Three";

   //displaying the key-value pairs
   for (auto itr = myMap.begin(); itr != myMap.end(); ++itr) {
      cout << itr->first << " " << itr->second << '\n';
   }

   return 0;
}
Copy after login

Output

1 One
2 Two
3 Three
Copy after login
Copy after login
Copy after login

Initialize a map from another map

It may be necessary to copy a map into another map, so we can initialize a map from another map. We take advantage of the map class's copy constructor by passing the map object to the map's copy constructor at declaration time.

grammar

#include <map>
map <data_type 1, data_type 2> myMap1(myMap2);
Copy after login

Example

#include <iostream>
#include <map>

using namespace std;

int main() {
   //declaring the map
   map <int, string> myMap;
   myMap[1] = "One";
   myMap[2] = "Two";
   myMap[3] = "Three";

   //copying using copy constructor
   map <int, string> myMap2(myMap);

   //displaying the key-value pairs
   for (auto itr = myMap2.begin(); itr != myMap2.end(); ++itr) {
      cout << itr->first << " " << itr->second << '\n';
   }

   return 0;
}
Copy after login

Output

1 One
2 Two
3 Three
Copy after login
Copy after login
Copy after login

in conclusion

Map in C is an ordered set, that is, the elements in the Map are sorted by key value. This makes it slower compared to other similar data structures such as an unordered map where key-value pairs are not sorted. All operations in the map have logarithmic complexity and are implemented in memory as a red-black tree. However, in practice, mapping is very useful because it provides great flexibility in storing data in a key-value manner. We've discussed all the main ways to initialize a map; while there are many ways to initialize, these are the most intuitive ways to do it.

The above is the detailed content of C++ program initialization dictionary. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template