Recently someone sent me an interesting email about the answer they got from ChatGPT to the question they asked: “Teach me about C++ std::map“.
ChatGPT provided the following code, with some additional notes.

Well, I read that code and noted a few things:
Since the map instance uses std::string as the key type, the associated <string> header should have been #included (although the above code could compile thanks to “indirect” inclusion of <string>; but that’s not a good practice).
Moreover, since C++20, std::map has been given a (long-awaited…) method to check if there is an element with a key equivalent to the input key in the container. So, I would use map::contains instead of invoking the map::count method to check if a key exists.
// ChatGPT suggested:
//
// // Checking if a key exists
// if (ages.count("Bob") > 0) {
// ...
//
// Starting with C++20 you can use the much clearer
// and simpler map::contains:
//
if (ages.contains("Bob")) {
...
In addition, I would also improve the map iteration code provided by ChatGPT.
In fact, starting with C++17, a new feature called structured binding allows writing clearer code for iterating over std::map’s content. For example:
// ChatGPT suggested:
//
// Iterating over the map
// for (const auto& pair : ages) {
// std::cout << pair.first << ": " << pair.second << std::endl;
// }
//
// Using C++17's structure bindings you can write:
//
for (const auto& [name, age]: ages) {
std::cout << name << ": " << age << std::endl;
}
Note how using identifiers like name and age produces code that is much more readable than pair.first and pair.second (which are in the code suggested by ChatGPT).
(As a side note of kind of lesser importance, you may want to replace std::endl with ‘\n’ in the above code; although if “output performance” is not particularly important, std::endl would be acceptable.)
What conclusions can we draw from that interesting experience?
Well, I think ChatGPT did a decent job in showing a basic usage of C++ std::map. But, still, its code is not optimal. As discussed in this simple code review, with a better knowledge of the C++ language and standard library features you can produce higher-quality code (e.g. more readable, clearer) than ChatGPT did in this instance.
…But maybe ChatGPT will read this code review, learn a new thing or two, and improve? 😉