From a8e69f6c7e7646eca878176451ef874c09acc1fd Mon Sep 17 00:00:00 2001 From: Mohit5Upadhyay Date: Wed, 23 Jul 2025 14:32:53 +0530 Subject: [PATCH 1/2] docs(cpp): add reserve() entry for unordered_map #7144 --- .../unordered-map/terms/reserve/reserve.md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 content/cpp/concepts/unordered-map/terms/reserve/reserve.md diff --git a/content/cpp/concepts/unordered-map/terms/reserve/reserve.md b/content/cpp/concepts/unordered-map/terms/reserve/reserve.md new file mode 100644 index 00000000000..2a0c81bdec5 --- /dev/null +++ b/content/cpp/concepts/unordered-map/terms/reserve/reserve.md @@ -0,0 +1,98 @@ +--- +Title: '.reserve()' +Description: 'Reserves space for at least the specified number of elements in an unordered map.' +Subjects: + - 'Computer Science' + - 'Game Development' +Tags: + - 'Classes' + - 'Objects' + - 'OOP' +CatalogContent: + - 'learn-c-plus-plus' + - 'paths/computer-science' +--- + +The **`.reserve()`** method reserves space for at least the specified number of elements in an [unordered map](https://www.codecademy.com/resources/docs/cpp/unordered-map). This helps optimize performance by reducing the number of costly rehash operations when many elements are inserted. + +## Syntax + +```pseudo +mapName.reserve(count); +``` + +- `mapName`: The name of the unordered map. +- `count`: The number of elements to reserve space for. + +## Example + +The following example demonstrates the use of the `.reserve()` method with an unordered map to optimize performance when adding student grades: + +```cpp +#include +#include + +int main() { + // Initializing unordered_map and reserving space for 10 elements + std::unordered_map studentGrades; + studentGrades.reserve(10); + + // Adding student grades + studentGrades["Alice"] = 95; + studentGrades["Bob"] = 87; + studentGrades["Charlie"] = 92; + studentGrades["Diana"] = 88; + + std::cout << "Student grades after reservation:\n"; + for (const auto& student : studentGrades) { + std::cout << student.first << ": " << student.second << std::endl; + } + + std::cout << "Bucket count: " << studentGrades.bucket_count() << std::endl; + + return 0; +} +``` + +This example results in the following output: + +```shell +Student grades after reservation: +Charlie: 92 +Bob: 87 +Diana: 88 +Alice: 95 +Bucket count: 11 +``` + +## Codebyte Example + +The following codebyte example demonstrates the use of the `.reserve()` method with an unordered map to store employee information efficiently: + +```codebyte/cpp +#include +#include + +int main() { + // Initializing unordered_map with employee IDs and names + std::unordered_map employees; + + // Reserve space for 8 employees to optimize performance + employees.reserve(8); + + // Adding employee data + employees[101] = "John"; + employees[102] = "Sarah"; + employees[103] = "Mike"; + employees[104] = "Emma"; + + std::cout << "Employee roster:\n"; + for (const auto& emp : employees) { + std::cout << "ID " << emp.first << ": " << emp.second << std::endl; + } + + std::cout << "Reserved bucket count: " << employees.bucket_count() << std::endl; + + return 0; +} +``` \ No newline at end of file From f6b6abdb67c86940e01e855761e5d284ddf97c35 Mon Sep 17 00:00:00 2001 From: Mamta Wardhani Date: Thu, 24 Jul 2025 17:12:23 +0530 Subject: [PATCH 2/2] Update reserve.md --- .../unordered-map/terms/reserve/reserve.md | 74 ++++++++++--------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/content/cpp/concepts/unordered-map/terms/reserve/reserve.md b/content/cpp/concepts/unordered-map/terms/reserve/reserve.md index 2a0c81bdec5..78bcb87e84e 100644 --- a/content/cpp/concepts/unordered-map/terms/reserve/reserve.md +++ b/content/cpp/concepts/unordered-map/terms/reserve/reserve.md @@ -6,14 +6,15 @@ Subjects: - 'Game Development' Tags: - 'Classes' + - 'Map' + - 'Memory' - 'Objects' - - 'OOP' CatalogContent: - 'learn-c-plus-plus' - 'paths/computer-science' --- -The **`.reserve()`** method reserves space for at least the specified number of elements in an [unordered map](https://www.codecademy.com/resources/docs/cpp/unordered-map). This helps optimize performance by reducing the number of costly rehash operations when many elements are inserted. +The **`.reserve()`** method reserves space for at least the specified number of elements in an [unordered map](https://www.codecademy.com/resources/docs/cpp/unordered-map), helping optimize performance by reducing costly rehash operations during bulk insertions. ## Syntax @@ -21,8 +22,13 @@ The **`.reserve()`** method reserves space for at least the specified number of mapName.reserve(count); ``` -- `mapName`: The name of the unordered map. -- `count`: The number of elements to reserve space for. +**Parameters:** + +- `count`: The minimum number of elements to reserve space for. + +**Return value:** + +This is a `void` method. It doesn’t return a value but affects the internal capacity of the unordered map. ## Example @@ -33,24 +39,24 @@ The following example demonstrates the use of the `.reserve()` method with an un #include int main() { - // Initializing unordered_map and reserving space for 10 elements - std::unordered_map studentGrades; - studentGrades.reserve(10); + // Initializing unordered_map and reserving space for 10 elements + std::unordered_map studentGrades; + studentGrades.reserve(10); - // Adding student grades - studentGrades["Alice"] = 95; - studentGrades["Bob"] = 87; - studentGrades["Charlie"] = 92; - studentGrades["Diana"] = 88; + // Adding student grades + studentGrades["Alice"] = 95; + studentGrades["Bob"] = 87; + studentGrades["Charlie"] = 92; + studentGrades["Diana"] = 88; - std::cout << "Student grades after reservation:\n"; - for (const auto& student : studentGrades) { - std::cout << student.first << ": " << student.second << std::endl; - } + std::cout << "Student grades after reservation:\n"; + for (const auto& student : studentGrades) { + std::cout << student.first << ": " << student.second << std::endl; + } - std::cout << "Bucket count: " << studentGrades.bucket_count() << std::endl; + std::cout << "Bucket count: " << studentGrades.bucket_count() << std::endl; - return 0; + return 0; } ``` @@ -74,25 +80,25 @@ The following codebyte example demonstrates the use of the `.reserve()` method w #include int main() { - // Initializing unordered_map with employee IDs and names - std::unordered_map employees; + // Initializing unordered_map with employee IDs and names + std::unordered_map employees; - // Reserve space for 8 employees to optimize performance - employees.reserve(8); + // Reserve space for 8 employees to optimize performance + employees.reserve(8); - // Adding employee data - employees[101] = "John"; - employees[102] = "Sarah"; - employees[103] = "Mike"; - employees[104] = "Emma"; + // Adding employee data + employees[101] = "John"; + employees[102] = "Sarah"; + employees[103] = "Mike"; + employees[104] = "Emma"; - std::cout << "Employee roster:\n"; - for (const auto& emp : employees) { - std::cout << "ID " << emp.first << ": " << emp.second << std::endl; - } + std::cout << "Employee roster:\n"; + for (const auto& emp : employees) { + std::cout << "ID " << emp.first << ": " << emp.second << std::endl; + } - std::cout << "Reserved bucket count: " << employees.bucket_count() << std::endl; + std::cout << "Reserved bucket count: " << employees.bucket_count() << std::endl; - return 0; + return 0; } -``` \ No newline at end of file +```