{"id":2197,"date":"2025-01-28T20:27:45","date_gmt":"2025-01-28T20:27:45","guid":{"rendered":"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/?page_id=2197"},"modified":"2025-01-28T21:43:11","modified_gmt":"2025-01-28T21:43:11","slug":"sorted-associative-containers","status":"publish","type":"page","link":"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/index.php\/topics\/c-details\/the-standard-template-library-2\/sorted-associative-containers\/","title":{"rendered":"Sorted Associative Containers"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Sorted_Associative_Containers\"><\/span>Sorted Associative Containers<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><em><strong>Sorted associative containers<\/strong><\/em> store elements in a sorted order based on their keys.&nbsp;This allows for efficient retrieval and manipulation of elements.&nbsp;<\/p>\n\n\n\n<p>Here are the main sorted associative containers in C++:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>set&lt;Key&gt;<\/strong> : Supports a unique set of keys, and provides for fast retrieval of keys<\/li>\n\n\n\n<li><strong>multiset&lt;Key&gt;<\/strong> : Supports duplicate keys, and provides for fast retrieval of keys.<\/li>\n\n\n\n<li><strong>map&lt;Key, T&gt;<\/strong> : Supports a unique set of keys and associated values of a type <strong>T<\/strong>;&nbsp; provides fast retrieval of a value based on its key.<\/li>\n\n\n\n<li><strong>multimap&lt;Key, T&gt;<\/strong> : Supports duplicate keys and associated values of a type <strong>T<\/strong>;&nbsp; provides fast retrieval of a value based on its key.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_set_Sorted_Associative_Container\"><\/span>The set Sorted Associative Container<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Here&#8217;s an example of the use of a <strong>set<\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono-NL.ttf\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#000000;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(0, 0, 0, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"\/\/\n\/\/  main.cpp\n\/\/  STL Sorted Associative Containers\n\/\/\n\/\/  Created by Bryan Higgs on 10\/23\/24.\n\/\/\n\n#include &lt;iostream&gt;\n#include &lt;set&gt;\n#include &lt;vector&gt;\n\n#include &quot;Make.h&quot;\n\nint main(int argc, const char * argv[])\n{\n  char sentence[] = &quot;A little knowledge is a dangerous thing&quot;;\n  std::vector&lt;char&gt; v = make&lt; std::vector&lt;char&gt; &gt;(sentence);\n  std::set&lt;char&gt; s;\n  \n  std::vector&lt;char&gt;::iterator vi;\n  for (vi = v.begin(); vi != v.end(); vi++)\n  {\n    s.insert(*vi);\n  }\n  \n  std::set&lt;char&gt;::iterator si;\n  std::cout &lt;&lt; '&lt;';\n  for (si = s.begin(); si != s.end(); si++)\n  {\n    std::cout &lt;&lt; *si;\n  }\n  std::cout &lt;&lt; &quot;&gt;&quot; &lt;&lt; std::endl;\n  \n  return 0;\n}\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  main.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  STL Sorted Associative Containers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  Created by Bryan Higgs on 10\/23\/24.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;set&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;vector&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&quot;Make.h&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #0000FF\">int<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">main<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #0000FF\">int<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">argc<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">const<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">*<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">argv<\/span><span style=\"color: #000000\">[])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\"> sentence[] = <\/span><span style=\"color: #A31515\">&quot;A little knowledge is a dangerous thing&quot;<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::vector&lt;<\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\">&gt; v = <\/span><span style=\"color: #795E26\">make<\/span><span style=\"color: #000000\">&lt; <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">vector<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\">&gt; &gt;(sentence);<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::set&lt;<\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\">&gt; s;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">vector<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\">&gt;::iterator vi;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #AF00DB\">for<\/span><span style=\"color: #000000\"> (vi = <\/span><span style=\"color: #001080\">v<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">begin<\/span><span style=\"color: #000000\">(); vi != <\/span><span style=\"color: #001080\">v<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">end<\/span><span style=\"color: #000000\">(); vi++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">s<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">insert<\/span><span style=\"color: #000000\">(*vi);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">set<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\">&gt;::iterator si;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; <\/span><span style=\"color: #A31515\">&#39;&lt;&#39;<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #AF00DB\">for<\/span><span style=\"color: #000000\"> (si = <\/span><span style=\"color: #001080\">s<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">begin<\/span><span style=\"color: #000000\">(); si != <\/span><span style=\"color: #001080\">s<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">end<\/span><span style=\"color: #000000\">(); si++)<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  {<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">    <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; *si;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; <\/span><span style=\"color: #A31515\">&quot;&gt;&quot;<\/span><span style=\"color: #000000\"> &lt;&lt; <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #AF00DB\">return<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #098658\">0<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">}<\/span><\/span><\/code><\/pre><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Which uses the <strong>Make.h<\/strong> file we defined earlier:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono-NL.ttf\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#000000;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"\/\/\n\/\/  Make.h\n\/\/  STL Sorted Associative Containers\n\/\/\n\/\/  Created by Bryan Higgs on 10\/23\/24.\n\/\/\n\n#ifndef Make_h\n#define Make_h\n\ntemplate &lt;typename Container&gt;\nContainer make(const char s[])\n{\n  return Container(&amp;s[0], &amp;s[strlen(s)]);\n}\n\n#endif \/* Make_h *\/\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  Make.h<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  STL Sorted Associative Containers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  Created by Bryan Higgs on 10\/23\/24.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#ifndef<\/span><span style=\"color: #0000FF\"> Make_h<\/span><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#define<\/span><span style=\"color: #0000FF\"> Make_h<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #0000FF\">template<\/span><span style=\"color: #000000\"> &lt;<\/span><span style=\"color: #0000FF\">typename<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #267F99\">Container<\/span><span style=\"color: #000000\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #267F99\">Container<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">make<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #0000FF\">const<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">s<\/span><span style=\"color: #000000\">[])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #AF00DB\">return<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">Container<\/span><span style=\"color: #000000\">(&amp;<\/span><span style=\"color: #001080\">s<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #098658\">0<\/span><span style=\"color: #000000\">], &amp;<\/span><span style=\"color: #001080\">s<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #795E26\">strlen<\/span><span style=\"color: #000000\">(s)]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#endif<\/span><span style=\"color: #008000\"> \/* Make_h *\/<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>&#8230; and outputs:<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"padding-top:0px;padding-bottom:0px\"><code><strong>&lt; Aadeghiklnorstuw&gt;\nProgram ended with exit code: 0<\/strong><\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_multiset_Sorted_Associative_Container\"><\/span>The multiset Sorted Associative Container<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Here&#8217;s an example of the use of a <strong>multiset<\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono-NL.ttf\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#000000;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(0, 0, 0, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"\/\/\n\/\/  main.cpp\n\/\/  STL Sorted Associative Containers\n\/\/\n\/\/  Created by Bryan Higgs on 10\/23\/24.\n\/\/\n\n#include &lt;iostream&gt;\n#include &lt;set&gt;\n#include &lt;vector&gt;\n\n#include &quot;make.h&quot;\n\nint main(int argc, const char * argv[])\n{\n  char sentence[] = &quot;A little knowledge is a dangerous thing&quot;;\n  std::vector&lt;char&gt; v = make&lt; std::vector&lt;char&gt; &gt;(sentence);\n  std::multiset&lt;char&gt; s;\n  \n  std::vector&lt;char&gt;::iterator vi;\n  for (vi = v.begin(); vi != v.end(); vi++)\n  {\n    s.insert(*vi);\n  }\n  \n  std::multiset&lt;char&gt;::iterator si;\n  std::cout &lt;&lt; '&lt;';\n  for (si = s.begin(); si != s.end(); si++)\n  {\n    std::cout &lt;&lt; *si;\n  }\n  std::cout &lt;&lt; &quot;&gt;&quot; &lt;&lt; std::endl;\n  return 0;\n}\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  main.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  STL Sorted Associative Containers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  Created by Bryan Higgs on 10\/23\/24.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;set&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;vector&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&quot;make.h&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #0000FF\">int<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">main<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #0000FF\">int<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">argc<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">const<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">*<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">argv<\/span><span style=\"color: #000000\">[])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\"> sentence[] = <\/span><span style=\"color: #A31515\">&quot;A little knowledge is a dangerous thing&quot;<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::vector&lt;<\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\">&gt; v = <\/span><span style=\"color: #795E26\">make<\/span><span style=\"color: #000000\">&lt; <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">vector<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\">&gt; &gt;(sentence);<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::multiset&lt;<\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\">&gt; s;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">vector<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\">&gt;::iterator vi;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #AF00DB\">for<\/span><span style=\"color: #000000\"> (vi = <\/span><span style=\"color: #001080\">v<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">begin<\/span><span style=\"color: #000000\">(); vi != <\/span><span style=\"color: #001080\">v<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">end<\/span><span style=\"color: #000000\">(); vi++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">s<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">insert<\/span><span style=\"color: #000000\">(*vi);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">multiset<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\">&gt;::iterator si;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; <\/span><span style=\"color: #A31515\">&#39;&lt;&#39;<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #AF00DB\">for<\/span><span style=\"color: #000000\"> (si = <\/span><span style=\"color: #001080\">s<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">begin<\/span><span style=\"color: #000000\">(); si != <\/span><span style=\"color: #001080\">s<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">end<\/span><span style=\"color: #000000\">(); si++)<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  {<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">    <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; *si;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; <\/span><span style=\"color: #A31515\">&quot;&gt;&quot;<\/span><span style=\"color: #000000\"> &lt;&lt; <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #AF00DB\">return<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #098658\">0<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">}<\/span><\/span><\/code><\/pre><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>It outputs:<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"padding-top:0px;padding-bottom:0px\"><code><strong>&lt;      Aaaddeeeeggghiiiklllnnnoorsstttuw&gt;\nProgram ended with exit code: 0<\/strong><\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_map_Sorted_Associative_Container\"><\/span>The map Sorted Associative Container<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Here&#8217;s an example of the use of a <strong>map<\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono-NL.ttf\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#000000;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(0, 0, 0, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"\/\/\n\/\/  main.cpp\n\/\/  STL Sorted Associative Containers\n\/\/\n\/\/  Created by Bryan Higgs on 10\/23\/24.\n\/\/\n\n#include &lt;iostream&gt;\n#include &lt;map&gt;    \/\/ for map class\n#include &lt;string&gt;  \/\/ for string class\n\nint main(int argc, const char * argv[])\n{\n  std::map&lt;std::string, long&gt; phoneDir;\n  \n  \/\/ Populate with some names\/telephone numbers\n  phoneDir[&quot;Lincoln&quot;] = 5551212;\n  phoneDir[&quot;Jefferson&quot;] = 5556000;\n  phoneDir[&quot;Washington&quot;] = 5557890;\n  \n  std::string name;\n  \n  while (true)  \/\/ Look up number by name\n  {\n    std::cout &lt;&lt; &quot;Enter a name: &quot;;\n    if ( !(std::cin &gt;&gt; name) )\n      break; \/\/ End of input\n    \n    if (phoneDir.find(name) != phoneDir.end())\n    {\n      std::cout &lt;&lt; &quot;Telephone number: &quot;\n                &lt;&lt; phoneDir[name] &lt;&lt; std::endl;\n    }\n    else\n    {\n      std::cout &lt;&lt; &quot;No entry found for: &quot;\n                &lt;&lt; name &lt;&lt; std::endl;\n    }\n  }\n  \n  return 0;\n}\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  main.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  STL Sorted Associative Containers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  Created by Bryan Higgs on 10\/23\/24.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;map&gt;<\/span><span style=\"color: #0000FF\">    <\/span><span style=\"color: #008000\">\/\/ for map class<\/span><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;string&gt;<\/span><span style=\"color: #0000FF\">  <\/span><span style=\"color: #008000\">\/\/ for string class<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #0000FF\">int<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">main<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #0000FF\">int<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">argc<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">const<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">*<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">argv<\/span><span style=\"color: #000000\">[])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">{<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::map&lt;<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::string, <\/span><span style=\"color: #0000FF\">long<\/span><span style=\"color: #000000\">&gt; phoneDir;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">  \/\/ Populate with some names\/telephone numbers<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #A31515\">&quot;Lincoln&quot;<\/span><span style=\"color: #000000\">] = <\/span><span style=\"color: #098658\">5551212<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #A31515\">&quot;Jefferson&quot;<\/span><span style=\"color: #000000\">] = <\/span><span style=\"color: #098658\">5556000<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #A31515\">&quot;Washington&quot;<\/span><span style=\"color: #000000\">] = <\/span><span style=\"color: #098658\">5557890<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::string name;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #AF00DB\">while<\/span><span style=\"color: #000000\"> (<\/span><span style=\"color: #0000FF\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #008000\">  \/\/ Look up number by name<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; <\/span><span style=\"color: #A31515\">&quot;Enter a name: &quot;<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">    <\/span><span style=\"color: #AF00DB\">if<\/span><span style=\"color: #000000\"> ( !(<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cin &gt;&gt; name) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      <\/span><span style=\"color: #AF00DB\">break<\/span><span style=\"color: #000000\">;<\/span><span style=\"color: #008000\"> \/\/ End of input<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">    <\/span><span style=\"color: #AF00DB\">if<\/span><span style=\"color: #000000\"> (<\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">find<\/span><span style=\"color: #000000\">(name) != <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">end<\/span><span style=\"color: #000000\">())<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    {<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">      <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; <\/span><span style=\"color: #A31515\">&quot;Telephone number: &quot;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">                &lt;&lt; <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">[name] &lt;&lt; <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #AF00DB\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; <\/span><span style=\"color: #A31515\">&quot;No entry found for: &quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">                &lt;&lt; name &lt;&lt; <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #AF00DB\">return<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #098658\">0<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">}<\/span><\/span><\/code><\/pre><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>It outputs:<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"padding-top:0px;padding-bottom:0px\"><code><strong>Enter a name: <kbd><em>Gandhi<\/em><\/kbd>\nNo entry found for: Gandhi\nEnter a name: <kbd><em>Lincoln<\/em><\/kbd>\nTelephone number: 5551212\nEnter a name: <kbd><em>Obama<\/em><\/kbd>\nNo entry found for: Obama\nEnter a name: <kbd><em>Jefferson<\/em><\/kbd>\nTelephone number: 5556000\nEnter a name: \u001a<kbd><em>{Ctrl\/D}<\/em><\/kbd>\nProgram ended with exit code: 0<\/strong><\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_multimap_Sorted_Associative_Container\"><\/span>The multimap Sorted Associative Container<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Here&#8217;s an example of the use of a <strong>multimap<\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono-NL.ttf\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#000000;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(0, 0, 0, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"\/\/\n\/\/  main.cpp\n\/\/  STL Sorted Associative Containers\n\/\/\n\/\/  Created by Bryan Higgs on 10\/23\/24.\n\/\/\n\n#include &lt;iostream&gt;\n#include &lt;map&gt;  \/\/ for multimap class\n#include &lt;string&gt;  \/\/ for string class\n\nint main(int argc, const char * argv[])\n{\n  std::multimap&lt;std::string, long&gt; phoneDir;\n  \/\/ Populate with some names\/telephone numbers\n  \/\/ (Note that multimap does not support operator[].)\n  phoneDir.insert( std::pair&lt;std::string, long&gt;(&quot;Lincoln&quot;, 5551212) );\n  phoneDir.insert( std::pair&lt;std::string, long&gt;(&quot;Jefferson&quot;, 5556000) );\n  phoneDir.insert( std::pair&lt;std::string, long&gt;(&quot;Washington&quot;, 5557890) );\n  phoneDir.insert( std::pair&lt;std::string, long&gt;(&quot;Adams&quot;, 5551790) );\n  phoneDir.insert( std::pair&lt;std::string, long&gt;(&quot;Adams&quot;, 5551810) );\n  phoneDir.insert( std::pair&lt;std::string, long&gt;(&quot;Bush&quot;, 5551990) );\n  phoneDir.insert( std::pair&lt;std::string, long&gt;(&quot;Bush&quot;, 5552001) );\n  \n  std::string name;\n  \n  while (true)  \/\/ Look up number by name\n  {\n    std::cout &lt;&lt; &quot;Enter a name: &quot;;\n    if ( !(std::cin &gt;&gt; name) )\n      break;  \/\/ End of input\n    \n    std::multimap&lt;std::string, long&gt;::iterator match\n              = phoneDir.lower_bound(name);\n    \n    if (match != phoneDir.end())\n    {\n      std::cout &lt;&lt; &quot;Telephone number(s):&quot; &lt;&lt; std::endl;\n      std::multimap&lt;std::string, long&gt;::iterator matchEnd\n              = phoneDir.upper_bound(name);\n      \n      for (; match != matchEnd; match++)\n      {\n        std::cout &lt;&lt; match-&gt;first\n                  &lt;&lt; &quot;: &quot; &lt;&lt; match-&gt;second &lt;&lt; std::endl;\n      }\n    }\n    else\n      std::cout &lt;&lt; &quot;No entry found for: &quot; &lt;&lt; name &lt;&lt; std::endl;\n  }\n  \n  \n  return 0;\n}\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  main.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  STL Sorted Associative Containers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/  Created by Bryan Higgs on 10\/23\/24.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;map&gt;<\/span><span style=\"color: #0000FF\">  <\/span><span style=\"color: #008000\">\/\/ for multimap class<\/span><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">#include<\/span><span style=\"color: #0000FF\"> <\/span><span style=\"color: #A31515\">&lt;string&gt;<\/span><span style=\"color: #0000FF\">  <\/span><span style=\"color: #008000\">\/\/ for string class<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #0000FF\">int<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">main<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #0000FF\">int<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">argc<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">const<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">char<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">*<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">argv<\/span><span style=\"color: #000000\">[])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">{<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::multimap&lt;<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::string, <\/span><span style=\"color: #0000FF\">long<\/span><span style=\"color: #000000\">&gt; phoneDir;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #008000\">  \/\/ Populate with some names\/telephone numbers<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #008000\">  \/\/ (Note that multimap does not support operator[].)<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">insert<\/span><span style=\"color: #000000\">( <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #795E26\">pair<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">long<\/span><span style=\"color: #000000\">&gt;(<\/span><span style=\"color: #A31515\">&quot;Lincoln&quot;<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #098658\">5551212<\/span><span style=\"color: #000000\">) );<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">insert<\/span><span style=\"color: #000000\">( <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #795E26\">pair<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">long<\/span><span style=\"color: #000000\">&gt;(<\/span><span style=\"color: #A31515\">&quot;Jefferson&quot;<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #098658\">5556000<\/span><span style=\"color: #000000\">) );<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">insert<\/span><span style=\"color: #000000\">( <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #795E26\">pair<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">long<\/span><span style=\"color: #000000\">&gt;(<\/span><span style=\"color: #A31515\">&quot;Washington&quot;<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #098658\">5557890<\/span><span style=\"color: #000000\">) );<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">insert<\/span><span style=\"color: #000000\">( <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #795E26\">pair<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">long<\/span><span style=\"color: #000000\">&gt;(<\/span><span style=\"color: #A31515\">&quot;Adams&quot;<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #098658\">5551790<\/span><span style=\"color: #000000\">) );<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">insert<\/span><span style=\"color: #000000\">( <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #795E26\">pair<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">long<\/span><span style=\"color: #000000\">&gt;(<\/span><span style=\"color: #A31515\">&quot;Adams&quot;<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #098658\">5551810<\/span><span style=\"color: #000000\">) );<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">insert<\/span><span style=\"color: #000000\">( <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #795E26\">pair<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">long<\/span><span style=\"color: #000000\">&gt;(<\/span><span style=\"color: #A31515\">&quot;Bush&quot;<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #098658\">5551990<\/span><span style=\"color: #000000\">) );<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">insert<\/span><span style=\"color: #000000\">( <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #795E26\">pair<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">long<\/span><span style=\"color: #000000\">&gt;(<\/span><span style=\"color: #A31515\">&quot;Bush&quot;<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #098658\">5552001<\/span><span style=\"color: #000000\">) );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::string name;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #AF00DB\">while<\/span><span style=\"color: #000000\"> (<\/span><span style=\"color: #0000FF\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #008000\">  \/\/ Look up number by name<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; <\/span><span style=\"color: #A31515\">&quot;Enter a name: &quot;<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">    <\/span><span style=\"color: #AF00DB\">if<\/span><span style=\"color: #000000\"> ( !(<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cin &gt;&gt; name) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      <\/span><span style=\"color: #AF00DB\">break<\/span><span style=\"color: #000000\">;<\/span><span style=\"color: #008000\">  \/\/ End of input<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">    <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">multimap<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">long<\/span><span style=\"color: #000000\">&gt;::iterator match<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">              = <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">lower_bound<\/span><span style=\"color: #000000\">(name);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">    <\/span><span style=\"color: #AF00DB\">if<\/span><span style=\"color: #000000\"> (match != <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">end<\/span><span style=\"color: #000000\">())<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">    {<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">      <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; <\/span><span style=\"color: #A31515\">&quot;Telephone number(s):&quot;<\/span><span style=\"color: #000000\"> &lt;&lt; <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::endl;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">      <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">multimap<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::<\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #0000FF\">long<\/span><span style=\"color: #000000\">&gt;::iterator matchEnd<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">              = <\/span><span style=\"color: #001080\">phoneDir<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">upper_bound<\/span><span style=\"color: #000000\">(name);<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">      <\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">      <\/span><span style=\"color: #AF00DB\">for<\/span><span style=\"color: #000000\"> (; match != matchEnd; match++)<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">      {<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">        <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; <\/span><span style=\"color: #001080\">match<\/span><span style=\"color: #000000\">-&gt;<\/span><span style=\"color: #001080\">first<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">                  &lt;&lt; <\/span><span style=\"color: #A31515\">&quot;: &quot;<\/span><span style=\"color: #000000\"> &lt;&lt; <\/span><span style=\"color: #001080\">match<\/span><span style=\"color: #000000\">-&gt;<\/span><span style=\"color: #001080\">second<\/span><span style=\"color: #000000\"> &lt;&lt; <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::endl;<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #000000\">      }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #AF00DB\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::cout &lt;&lt; <\/span><span style=\"color: #A31515\">&quot;No entry found for: &quot;<\/span><span style=\"color: #000000\"> &lt;&lt; name &lt;&lt; <\/span><span style=\"color: #267F99\">std<\/span><span style=\"color: #000000\">::endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #AF00DB\">return<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #098658\">0<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">}<\/span><\/span><\/code><\/pre><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>It outputs:<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"padding-top:0px;padding-bottom:0px\"><code><strong>Enter a name: <kbd><em>Washington<\/em><\/kbd>\nTelephone number(s):\nWashington: 5557890\nEnter a name: <kbd><em>Bush<\/em><\/kbd>\nTelephone number(s):\nBush: 5551990\nBush: 5552001\nEnter a name: <em><kbd>Obama<\/kbd><\/em>\nTelephone number(s):\nEnter a name: \u0004<kbd><em>{Ctrl\/D}<\/em><\/kbd>\nProgram ended with exit code: 0<\/strong><\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-text-align-center has-large-font-size\"><strong>The pair Class Template<\/strong><\/p>\n\n\n\n<p>Note the use of the <strong>pair<\/strong> class template.<\/p>\n\n\n\n<p><strong>pair<\/strong> is used to combine together two values that may be of different data types. Pair provides a way to store two heterogeneous objects as a single unit. The <strong>pair<\/strong> container is a simple container defined in&nbsp;<strong>&lt;utility&gt;<\/strong>&nbsp;header consisting of two data elements or objects.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The first element is referenced as \u2018<strong>first<\/strong>\u2019 and the second element as \u2018<strong>second<\/strong>\u2019 and the order is fixed (first, second).<\/li>\n<\/ul>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Sorted_Associative_Container_Ordering\"><\/span>Sorted Associative Container Ordering<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The template parameters of both the <strong>set<\/strong> and the <strong>multiset<\/strong> class templates are:<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"padding-top:0px;padding-bottom:0px\"><code><strong>template &lt;typename Key, \n\t\t  typename Compare = less&lt;Key&gt;,\n\t\t  typename Allocator = allocator&lt;Key&gt; &gt;<\/strong><\/code><\/pre>\n\n\n\n<p>The template parameters of both the <strong>map<\/strong> and <strong>multimap<\/strong> class templates are:<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"padding-top:0px;padding-bottom:0px\"><code><strong>template &lt;typename Key, typename T,\n\t\t  typename Compare = less&lt;Key&gt;,\n\t\t  typename Allocator = allocator&lt; pair&lt;const Key, T&gt; &gt; &gt;<\/strong><\/code><\/pre>\n\n\n\n<p>Notice the <strong>Compare<\/strong> parameter.&nbsp; It is the comparison function that is used to determine the order of the container&#8217;s elements.<\/p>\n\n\n\n<p>You can override the default <strong>Compare<\/strong> function to change the ordering of the container, if you wish.<\/p>\n\n\n\n<div style=\"height:47px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-font-size has-medium-font-size\"><a class=\"wp-block-button__link has-palette-color-8-color has-text-color has-link-color wp-element-button\" href=\"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/index.php\/topics\/c-details\/the-standard-template-library-2\/function-adapters\/\">Next: Function Adapters<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Sorted Associative Containers Sorted associative containers store elements in a sorted order based on their keys.&nbsp;This allows for efficient retrieval and manipulation of elements.&nbsp; Here are the main sorted associative containers in C++: The set Sorted Associative Container Here&#8217;s an example of the use of a set: Which uses the Make.h file we defined earlier: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2150,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2197","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/index.php\/wp-json\/wp\/v2\/pages\/2197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/index.php\/wp-json\/wp\/v2\/comments?post=2197"}],"version-history":[{"count":3,"href":"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/index.php\/wp-json\/wp\/v2\/pages\/2197\/revisions"}],"predecessor-version":[{"id":2228,"href":"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/index.php\/wp-json\/wp\/v2\/pages\/2197\/revisions\/2228"}],"up":[{"embeddable":true,"href":"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/index.php\/wp-json\/wp\/v2\/pages\/2150"}],"wp:attachment":[{"href":"https:\/\/bhiggs.x10hosting.com\/PracticalCPlusPlusProgramming\/index.php\/wp-json\/wp\/v2\/media?parent=2197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}