CINXE.COM
The World Map of C++ STL Algorithms - Fluent C++
<!DOCTYPE html> <html lang="en-US"> <head> <meta property="og:type" content="article"/> <meta property="og:url" content="https://www.fluentcpp.com/getthemap/"/> <meta name="twitter:card" content="summary_large_image"/> <meta property="og:site_name" content="Fluent C++"/> <meta property="og:title" content="The World Map of C++ STL Algorithms"/> <meta name="twitter:title" content="The World Map of C++ STL Algorithms"/> <meta property="og:description" content="Expressive code in C++"/> <meta name="twitter:description" content="Expressive code in C++"/> <meta name="twitter:creator" content="@JoBoccara"/> <meta name="twitter:site" content="@JoBoccara"/> <!--[if IE]><link rel="stylesheet" type="text/css" href="https://www.fluentcpp.com/wp-content/themes/voice/css/ie.css"/><![endif]--> <!--[if lt IE 9]><link rel="stylesheet" type="text/css" href="https://www.fluentcpp.com/wp-content/themes/voice/css/ie8.css"/><![endif]--> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta charset="UTF-8"> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1'/> <title>The World Map of C++ STL Algorithms - Fluent C++</title> <link rel="canonical" href="https://www.fluentcpp.com/getthemap/"/> <meta property="og:locale" content="en_US"/> <meta property="og:type" content="article"/> <meta property="og:title" content="The World Map of C++ STL Algorithms - Fluent C++"/> <meta property="og:description" content="We all know that we should know our STL algorithms, because they help make our code more expressive and more robust (sometimes in spectacular ways!). But do you know all your STL algorithms? There are 105 of them if we include those of C++17, and every one of them has a chance to be useful […]"/> <meta property="og:url" content="https://www.fluentcpp.com/getthemap/"/> <meta property="og:site_name" content="Fluent C++"/> <meta property="article:modified_time" content="2020-12-22T19:18:30+00:00"/> <meta property="og:image" content="https://www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg"/> <meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:site" content="@JoBoccara"/> <meta name="twitter:label1" content="Est. reading time"/> <meta name="twitter:data1" content="2 minutes"/> <link rel='dns-prefetch' href='//stats.wp.com'/> <link rel='dns-prefetch' href='//i0.wp.com'/> <style id='wp-emoji-styles-inline-css'>img.wp-smiley, img.emoji{display:inline !important;border:none !important;box-shadow:none !important;height:1em !important;width:1em !important;margin:0 0.07em !important;vertical-align:-0.1em !important;background:none !important;padding:0 !important;}</style> <link rel="stylesheet" type="text/css" href="//www.fluentcpp.com/wp-content/cache/wpfc-minified/g1lc2aas/9ubxy.css" media="all"/> <style id='wp-block-library-inline-css'>.has-text-align-justify{text-align:justify;}</style> <link rel="stylesheet" type="text/css" href="//www.fluentcpp.com/wp-content/cache/wpfc-minified/9mjvj4wb/9ubxy.css" media="all"/> <style id='jetpack-sharing-buttons-style-inline-css'>.jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0} .jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px} .jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px} .jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px} .jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px} @media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0} ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em}</style> <style id='classic-theme-styles-inline-css'>.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em} .wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}</style> <style id='global-styles-inline-css'>body{--wp--preset--color--black:#000000;--wp--preset--color--cyan-bluish-gray:#abb8c3;--wp--preset--color--white:#ffffff;--wp--preset--color--pale-pink:#f78da7;--wp--preset--color--vivid-red:#cf2e2e;--wp--preset--color--luminous-vivid-orange:#ff6900;--wp--preset--color--luminous-vivid-amber:#fcb900;--wp--preset--color--light-green-cyan:#7bdcb5;--wp--preset--color--vivid-green-cyan:#00d084;--wp--preset--color--pale-cyan-blue:#8ed1fc;--wp--preset--color--vivid-cyan-blue:#0693e3;--wp--preset--color--vivid-purple:#9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple:linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan:linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange:linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red:linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray:linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum:linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple:linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux:linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk:linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean:linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass:linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight:linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small:13px;--wp--preset--font-size--medium:20px;--wp--preset--font-size--large:36px;--wp--preset--font-size--x-large:42px;--wp--preset--spacing--20:0.44rem;--wp--preset--spacing--30:0.67rem;--wp--preset--spacing--40:1rem;--wp--preset--spacing--50:1.5rem;--wp--preset--spacing--60:2.25rem;--wp--preset--spacing--70:3.38rem;--wp--preset--spacing--80:5.06rem;--wp--preset--shadow--natural:6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep:12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp:6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined:6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp:6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap:0.5em;}:where(.is-layout-grid){gap:0.5em;} body .is-layout-flex{display:flex;} body .is-layout-flex{flex-wrap:wrap;align-items:center;} body .is-layout-flex > *{margin:0;} body .is-layout-grid{display:grid;} body .is-layout-grid > *{margin:0;}:where(.wp-block-columns.is-layout-flex){gap:2em;}:where(.wp-block-columns.is-layout-grid){gap:2em;}:where(.wp-block-post-template.is-layout-flex){gap:1.25em;}:where(.wp-block-post-template.is-layout-grid){gap:1.25em;} .has-black-color{color:var(--wp--preset--color--black) !important;} .has-cyan-bluish-gray-color{color:var(--wp--preset--color--cyan-bluish-gray) !important;} .has-white-color{color:var(--wp--preset--color--white) !important;} .has-pale-pink-color{color:var(--wp--preset--color--pale-pink) !important;} .has-vivid-red-color{color:var(--wp--preset--color--vivid-red) !important;} .has-luminous-vivid-orange-color{color:var(--wp--preset--color--luminous-vivid-orange) !important;} .has-luminous-vivid-amber-color{color:var(--wp--preset--color--luminous-vivid-amber) !important;} .has-light-green-cyan-color{color:var(--wp--preset--color--light-green-cyan) !important;} .has-vivid-green-cyan-color{color:var(--wp--preset--color--vivid-green-cyan) !important;} .has-pale-cyan-blue-color{color:var(--wp--preset--color--pale-cyan-blue) !important;} .has-vivid-cyan-blue-color{color:var(--wp--preset--color--vivid-cyan-blue) !important;} .has-vivid-purple-color{color:var(--wp--preset--color--vivid-purple) !important;} .has-black-background-color{background-color:var(--wp--preset--color--black) !important;} .has-cyan-bluish-gray-background-color{background-color:var(--wp--preset--color--cyan-bluish-gray) !important;} .has-white-background-color{background-color:var(--wp--preset--color--white) !important;} .has-pale-pink-background-color{background-color:var(--wp--preset--color--pale-pink) !important;} .has-vivid-red-background-color{background-color:var(--wp--preset--color--vivid-red) !important;} .has-luminous-vivid-orange-background-color{background-color:var(--wp--preset--color--luminous-vivid-orange) !important;} .has-luminous-vivid-amber-background-color{background-color:var(--wp--preset--color--luminous-vivid-amber) !important;} .has-light-green-cyan-background-color{background-color:var(--wp--preset--color--light-green-cyan) !important;} .has-vivid-green-cyan-background-color{background-color:var(--wp--preset--color--vivid-green-cyan) !important;} .has-pale-cyan-blue-background-color{background-color:var(--wp--preset--color--pale-cyan-blue) !important;} .has-vivid-cyan-blue-background-color{background-color:var(--wp--preset--color--vivid-cyan-blue) !important;} .has-vivid-purple-background-color{background-color:var(--wp--preset--color--vivid-purple) !important;} .has-black-border-color{border-color:var(--wp--preset--color--black) !important;} .has-cyan-bluish-gray-border-color{border-color:var(--wp--preset--color--cyan-bluish-gray) !important;} .has-white-border-color{border-color:var(--wp--preset--color--white) !important;} .has-pale-pink-border-color{border-color:var(--wp--preset--color--pale-pink) !important;} .has-vivid-red-border-color{border-color:var(--wp--preset--color--vivid-red) !important;} .has-luminous-vivid-orange-border-color{border-color:var(--wp--preset--color--luminous-vivid-orange) !important;} .has-luminous-vivid-amber-border-color{border-color:var(--wp--preset--color--luminous-vivid-amber) !important;} .has-light-green-cyan-border-color{border-color:var(--wp--preset--color--light-green-cyan) !important;} .has-vivid-green-cyan-border-color{border-color:var(--wp--preset--color--vivid-green-cyan) !important;} .has-pale-cyan-blue-border-color{border-color:var(--wp--preset--color--pale-cyan-blue) !important;} .has-vivid-cyan-blue-border-color{border-color:var(--wp--preset--color--vivid-cyan-blue) !important;} .has-vivid-purple-border-color{border-color:var(--wp--preset--color--vivid-purple) !important;} .has-vivid-cyan-blue-to-vivid-purple-gradient-background{background:var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;} .has-light-green-cyan-to-vivid-green-cyan-gradient-background{background:var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;} .has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background:var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;} .has-luminous-vivid-orange-to-vivid-red-gradient-background{background:var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;} .has-very-light-gray-to-cyan-bluish-gray-gradient-background{background:var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;} .has-cool-to-warm-spectrum-gradient-background{background:var(--wp--preset--gradient--cool-to-warm-spectrum) !important;} .has-blush-light-purple-gradient-background{background:var(--wp--preset--gradient--blush-light-purple) !important;} .has-blush-bordeaux-gradient-background{background:var(--wp--preset--gradient--blush-bordeaux) !important;} .has-luminous-dusk-gradient-background{background:var(--wp--preset--gradient--luminous-dusk) !important;} .has-pale-ocean-gradient-background{background:var(--wp--preset--gradient--pale-ocean) !important;} .has-electric-grass-gradient-background{background:var(--wp--preset--gradient--electric-grass) !important;} .has-midnight-gradient-background{background:var(--wp--preset--gradient--midnight) !important;} .has-small-font-size{font-size:var(--wp--preset--font-size--small) !important;} .has-medium-font-size{font-size:var(--wp--preset--font-size--medium) !important;} .has-large-font-size{font-size:var(--wp--preset--font-size--large) !important;} .has-x-large-font-size{font-size:var(--wp--preset--font-size--x-large) !important;} .wp-block-navigation a:where(:not(.wp-element-button)){color:inherit;}:where(.wp-block-post-template.is-layout-flex){gap:1.25em;}:where(.wp-block-post-template.is-layout-grid){gap:1.25em;}:where(.wp-block-columns.is-layout-flex){gap:2em;}:where(.wp-block-columns.is-layout-grid){gap:2em;} .wp-block-pullquote{font-size:1.5em;line-height:1.6;}</style> <link rel="stylesheet" type="text/css" href="//www.fluentcpp.com/wp-content/cache/wpfc-minified/kb04do0b/9ubxy.css" media="all"/> <link rel="https://api.w.org/" href="https://www.fluentcpp.com/wp-json/"/><link rel="alternate" type="application/json" href="https://www.fluentcpp.com/wp-json/wp/v2/pages/3551"/><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.fluentcpp.com/xmlrpc.php?rsd"/> <meta name="generator" content="WordPress 6.5.3"/> <link rel='shortlink' href='https://www.fluentcpp.com/?p=3551'/> <link rel="alternate" type="application/json+oembed" href="https://www.fluentcpp.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.fluentcpp.com%2Fgetthemap%2F"/> <link rel="alternate" type="text/xml+oembed" href="https://www.fluentcpp.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.fluentcpp.com%2Fgetthemap%2F&format=xml"/> <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-88369008-1', 'auto'); ga('send', 'pageview');</script> <style>img#wpstats{display:none}</style> <style>.wp-video-shortcode{max-width:100% !important;} body{background:#;} .cnt .sAs .twr{background:#;} .cnt article h1.entry-title a{color:#2c2c2c;} .cnt article h2.entry-title a{color:#2c2c2c;} .bSe h1{color:#2c2c2c;} .bSe h2{color:#2c2c2c;} .bSe h3{color:#2c2c2c;} .bSe h4{color:#2c2c2c;} .bSe h5{color:#2c2c2c;} .bSe h6{color:#2c2c2c;} .cnt p{color:#2c2c2c;} .cnt .bSe article{color:#2c2c2c;} .cnt article h1 a, .tve-woocommerce .bSe .entry-title, .tve-woocommerce .bSe .page-title{font-family:Roboto Slab,sans-serif;} .bSe h1{font-family:Roboto Slab,sans-serif;} .bSe h2,.tve-woocommerce .bSe h2{font-family:Roboto Slab,sans-serif;} .bSe h3,.tve-woocommerce .bSe h3{font-family:Roboto Slab,sans-serif;} .bSe h4{font-family:Roboto Slab,sans-serif;} .bSe h5{font-family:Roboto Slab,sans-serif;} .bSe h6{font-family:Roboto Slab,sans-serif;} #text_logo{font-family:Roboto Slab,sans-serif;} .cnt p, .bp-t .bSe, .bp-t p, .tve-woocommerce .product p, .tve-woocommerce .products p{font-family:Roboto Slab,sans-serif;font-weight:400;} article strong{font-weight:bold;} .bSe h1, .bSe .entry-title{font-size:54px;} .cnt{font-size:17px;} .thrivecb{font-size:17px;} .out{font-size:17px;} .aut p{font-size:17px;} .cnt p{line-height:1.8em;} .thrivecb{line-height:1.8em;} .cnt .cmt, .cnt .acm{background-color:#ea8355;} .trg{border-color:#ea8355 transparent transparent;} .str{border-color:transparent #ea8355 transparent transparent;} .pgn a:hover, .pgn .dots a:hover{background-color:#ea8355;} .brd ul li a{color:#ea8355;} .bSe a{color:#ea8355;} .lhgh{line-height:1.8em;} .dhgh{line-height:1.8em;} .lhgh{line-height:1.8em;} .dhgh{line-height:1.8em;}</style> <style></style> <style>.synved-social-resolution-single{display:inline-block;} .synved-social-resolution-normal{display:inline-block;} .synved-social-resolution-hidef{display:none;} @media only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 2dppx), only screen and (min-resolution: 192dpi) { .synved-social-resolution-normal{display:none;} .synved-social-resolution-hidef{display:inline-block;} }</style> <style>.far.f0.light{background:transparent !important;} .bSe .cnt ul li{font-family:Roboto Slab !important;}</style> </head> <body class="page-template-default page page-id-3551 custom-background"> <div class="sAs left sdef"> <div class="sAsdmy"></div><div class="sAsin"> <div class="msd"> <a href="https://www.fluentcpp.com/" id="logo"> <img src="https://www.fluentcpp.com/wp-content/uploads/2016/11/c10318_fluent_cpp_logo_jc1-1-e1479715436541.png" alt="Fluent C++"/> </a> <div class="si"> <div class="auth"> <div class="aut"> <img alt='' src='https://secure.gravatar.com/avatar/11bd501bb5da593c19aa7ae0b637649b?s=125&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/11bd501bb5da593c19aa7ae0b637649b?s=250&d=mm&r=g 2x' class='avatar avatar-125 photo' height='125' width='125' decoding='async'/></div><div class="aubb" style="display: none;"> <h4>About <a href="https://www.fluentcpp.com/author/">Jonathan Boccara</a> </h4> <p>Hello, my name is Jonathan Boccara, I'm your host on Fluent C++. I have been a developer for 10 years. My focus is on how to write <strong>expressive code</strong>. I wrote the book <a href="https://leanpub.com/legacycode?utm_source=blog&utm_campaign=bio">The Legacy Code Programmer's Toolbox</a>. I'm happy to take your feedback, don't hesitate to drop a comment on a post, <a href="http://twitter.com/joboccara">follow me</a> or <a href="mailto:jonathan@fluentcpp.com">get in touch</a> directly !</p> <div class="aubs clearfix"> <ul class="left"> <li> <a href="http://twitter.com/http://joboccara" class="twitter" target="_blank"></a> </li> <li> <a href="https://www.linkedin.com/in/jonathan-boccara-23826921/" class="linkedin" target="_blank"></a> </li> </ul> <a href="http://fluentcpp.com/about-me" class="mre right">Read more</a></div></div></div><p>Jonathan Boccara's blog</p></div><div class="sb"> <a href="" class="sbm hbd"></a> <a href="" class="sbs hbd"></a> <form action="https://www.fluentcpp.com/" method="get" class="msh" style="display: none;"> <div> <input type="text" placeholder="Search..." class="search-field" name="s"/> <button type="submit" class="search-button"></button> <div class="clear"></div></div></form></div><nav class="menu-primary-menu-container"><ul id="menu-primary-menu" class="menu"><li id="menu-item-819" class="menu-item menu-item-type-post_type menu-item-object-page toplvl menu-item-819"><a href="https://www.fluentcpp.com/posts/">Posts</a></li> <li id="menu-item-4046" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-3551 current_page_item toplvl menu-item-4046"><a href="https://www.fluentcpp.com/getthemap/" aria-current="page">The World Map of C++ STL Algorithms</a></li> <li id="menu-item-2250" class="menu-item menu-item-type-post_type menu-item-object-page toplvl menu-item-2250"><a href="https://www.fluentcpp.com/dailycpp/">Daily C++</a></li> <li id="menu-item-6335" class="menu-item menu-item-type-custom menu-item-object-custom toplvl menu-item-6335"><a href="https://www.redbubble.com/people/fluentcpp/shop?asc=u">Store</a></li> <li id="menu-item-518" class="menu-item menu-item-type-post_type menu-item-object-page toplvl menu-item-518"><a href="https://www.fluentcpp.com/about-me/">About</a></li> </ul></nav> <div class="clearfix"></div></div><div class="wsd" id="scrollingWidgets"> <div class="viewport"> <div class="overview scrollbar-chrome"> <div class="clear"></div></div></div></div></div></div><section class="bSe fullWidth"> <section class="far f0 light"> <div class="wrp"> <h4 style="text-align: center;"><a href="https://www.patreon.com/fluentcpp"><img class="aligncenter wp-image-205 size-full" src="https://www.fluentcpp.com/wp-content/uploads/2016/12/banner_black-1-e1493554197481.jpg" alt="" width="1024" height="319"/></a></h4></div></section> <div class="wrp"> <div class="ssf"> <div class="ssfi"> <div class="scfm"> <div class="ss"> <a class="tw" href="https://twitter.com/share?text=The World Map of C++ STL Algorithms:&url=https://www.fluentcpp.com/getthemap/&via=JoBoccara" onclick="return ThriveApp.open_share_popup(this.href, 545, 433);"> <span>Tweet</span> </a></div></div></div></div><article > <div class="cnt"> <h1 class="entry-title">The World Map of C++ STL Algorithms</h1> <p>We all know that we should know our STL algorithms, because they help make our code more expressive and more robust (sometimes in spectacular ways!).</p> <p>But do you know <em>all</em> your STL algorithms?</p> <p>There are 105 of them if we include those of C++17, and every one of them has a chance to be useful in your code.</p> <p>One way to remember those useful functions is by grouping them into <strong>7聽families of algorithms</strong>:</p> <ul> <li>the queriers,</li> <li>the permutationers,</li> <li>the algos on sets,</li> <li>the movers,</li> <li>the value modifiers,</li> <li>the structure changers,</li> <li>and the algos of raw memory.</li> </ul> <p>And each of those families have sub-families: the searchers, the property queriers, the partitioners, etc.</p> <p>To provide a visual representation of the families and an easy access for reference (and also have a cool geek accessory!), here is the <strong>World Map Of The STL Algorithms</strong>:</p> <p><img fetchpriority="high" decoding="async" class="size-full wp-image-3352 aligncenter" src="https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?resize=800%2C566&ssl=1" alt="world map C++ STL algorithms" width="800" height="566" srcset="https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?w=800&ssl=1 800w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?resize=150%2C106&ssl=1 150w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?resize=300%2C212&ssl=1 300w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?resize=768%2C543&ssl=1 768w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?resize=32%2C23&ssl=1 32w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?resize=141%2C100&ssl=1 141w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?resize=201%2C142&ssl=1 201w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?resize=350%2C248&ssl=1 350w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?resize=565%2C400&ssl=1 565w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?resize=622%2C440&ssl=1 622w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?resize=763%2C540&ssl=1 763w" sizes="(max-width: 800px) 100vw, 800px" data-recalc-dims="1"/></p> <p>The map is available in electronic wallpaper version. You can <a href="http://eepurl.com/dnAn_1">download it</a>聽by subscribing to the Fluent C++ mailing list (no spam, you can unsubscribe any time).</p> <p>Each family of algorithms owns a piece of land and a shield:</p> <p><img decoding="async" class="wp-image-3354 aligncenter" src="https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/structure_changers.jpg?resize=400%2C424&ssl=1" alt="remve unique C++ STL algorithms" width="400" height="424" srcset="https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/structure_changers.jpg?w=772&ssl=1 772w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/structure_changers.jpg?resize=142%2C150&ssl=1 142w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/structure_changers.jpg?resize=283%2C300&ssl=1 283w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/structure_changers.jpg?resize=768%2C814&ssl=1 768w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/structure_changers.jpg?resize=30%2C32&ssl=1 30w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/structure_changers.jpg?resize=94%2C100&ssl=1 94w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/structure_changers.jpg?resize=190%2C201&ssl=1 190w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/structure_changers.jpg?resize=378%2C400&ssl=1 378w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/structure_changers.jpg?resize=415%2C440&ssl=1 415w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/structure_changers.jpg?resize=510%2C540&ssl=1 510w" sizes="(max-width: 400px) 100vw, 400px" data-recalc-dims="1"/></p> <p>And sub-families are represented in regions:</p> <p><img decoding="async" class="wp-image-3355 aligncenter" src="https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/algos_heap_region.jpg?resize=450%2C351&ssl=1" alt="make_heap push_heap pop_heap C++ STL algorithms" width="450" height="351" srcset="https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/algos_heap_region.jpg?w=691&ssl=1 691w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/algos_heap_region.jpg?resize=150%2C117&ssl=1 150w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/algos_heap_region.jpg?resize=300%2C234&ssl=1 300w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/algos_heap_region.jpg?resize=32%2C25&ssl=1 32w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/algos_heap_region.jpg?resize=128%2C100&ssl=1 128w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/algos_heap_region.jpg?resize=201%2C157&ssl=1 201w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/algos_heap_region.jpg?resize=350%2C273&ssl=1 350w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/algos_heap_region.jpg?resize=513%2C400&ssl=1 513w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/algos_heap_region.jpg?resize=564%2C440&ssl=1 564w" sizes="(max-width: 450px) 100vw, 450px" data-recalc-dims="1"/></p> <p>And every city on the map <em>is</em> an STL algorithm! The visual layout shows what the STL has, and which algorithms are closely related to each other. This is how I memorize them.</p> <p>Interested in travelling the world of the STL to learn all the STL algorithms too? Watch my CppCon talk that presents the 105 STL algorithms, with the World Map as a support:</p> <p><iframe loading="lazy" src="https://www.youtube.com/embed/2olsGf6JIkU" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p> <p>Do you find this map would also make it practical and fun for you to learn the STL algorithms?</p> <p>You can <a href="http://eepurl.com/dnAn_1">download it</a>聽by subscribing to the Fluent C++ mailing list (no spam, you can unsubscribe any time).</p> <p> </p> <p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3359" src="https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_of_algorithms_title.jpg?resize=500%2C475&ssl=1" alt="C++ STL algorithms" width="500" height="475" srcset="https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_of_algorithms_title.jpg?w=500&ssl=1 500w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_of_algorithms_title.jpg?resize=150%2C143&ssl=1 150w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_of_algorithms_title.jpg?resize=300%2C285&ssl=1 300w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_of_algorithms_title.jpg?resize=32%2C30&ssl=1 32w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_of_algorithms_title.jpg?resize=105%2C100&ssl=1 105w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_of_algorithms_title.jpg?resize=201%2C191&ssl=1 201w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_of_algorithms_title.jpg?resize=316%2C300&ssl=1 316w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_of_algorithms_title.jpg?resize=421%2C400&ssl=1 421w, https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_of_algorithms_title.jpg?resize=463%2C440&ssl=1 463w" sizes="(max-width: 500px) 100vw, 500px" data-recalc-dims="1"/></p> <h3>You may also like:</h3> <ul> <li><a href="http://fluentcpp.com/STL">The STL Learning Resource</a></li> <li><a href="https://www.fluentcpp.com/2017/01/05/the-importance-of-knowing-stl-algorithms/">The importance of knowing your STL algorithms</a></li> </ul> <div class="clear"></div></div></article> <article id="comments"> <div class="awr"> <div class="cmb" style="margin-left: 0px;" id="thrive_container_list_comments"></div></div></article> <div id="comment-bottom"></div><div class="clear"></div></div><footer> <div class="wrp"> <div class="fms"> <ul> <li> <a href="https://twitter.com/JoBoccara" target="_blank" class="twitter"></a> </li> </ul></div><div class="fmc"> <p> Copyright text 2018 by Fluent C++. - Designed by <a href="https://www.thrivethemes.com" target="_blank" style="text-decoration: underline;">Thrive Themes</a> | Powered by <a style="text-decoration: underline;" href="//www.wordpress.org" target="_blank">WordPress</a> </p></div></div></footer> </section> <div class="clear"></div><link wpfc-href='//fonts.googleapis.com/css?family=Roboto+Slab:400,700' rel='stylesheet' type='text/css'> <script id="thrive-main-script-js-extra">var ThriveApp={"ajax_url":"https:\/\/www.fluentcpp.com\/wp-admin\/admin-ajax.php","lazy_load_comments":"1","comments_loaded":"0","theme_uri":"https:\/\/www.fluentcpp.com\/wp-content\/themes\/voice","translations":{"ProductDetails":"Product Details"}};</script> <script id="tve-dash-frontend-js-extra">var tve_dash_front={"ajaxurl":"https:\/\/www.fluentcpp.com\/wp-admin\/admin-ajax.php","force_ajax_send":"1","is_crawler":"","recaptcha":[],"post_id":"3551"};</script> <!--[if lt IE 9]><script src="//www.fluentcpp.com/wp-content/cache/wpfc-minified/ba104addca3e6889bd428fefe931ee80/9ubxy.js"></script><![endif]--> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.fluentcpp.com/getthemap/","url":"https://www.fluentcpp.com/getthemap/","name":"The World Map of C++ STL Algorithms - Fluent C++","isPartOf":{"@id":"https://www.fluentcpp.com/#website"},"primaryImageOfPage":{"@id":"https://www.fluentcpp.com/getthemap/#primaryimage"},"image":{"@id":"https://www.fluentcpp.com/getthemap/#primaryimage"},"thumbnailUrl":"https://www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg","datePublished":"2018-04-02T11:46:51+00:00","dateModified":"2020-12-22T19:18:30+00:00","breadcrumb":{"@id":"https://www.fluentcpp.com/getthemap/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.fluentcpp.com/getthemap/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.fluentcpp.com/getthemap/#primaryimage","url":"https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?fit=800%2C566&ssl=1","contentUrl":"https://i0.wp.com/www.fluentcpp.com/wp-content/uploads/2018/03/world_map_800.jpg?fit=800%2C566&ssl=1","width":800,"height":566,"caption":"world map C++ STL algorithms"},{"@type":"BreadcrumbList","@id":"https://www.fluentcpp.com/getthemap/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.fluentcpp.com/"},{"@type":"ListItem","position":2,"name":"The World Map of C++ STL Algorithms"}]},{"@type":"WebSite","@id":"https://www.fluentcpp.com/#website","url":"https://www.fluentcpp.com/","name":"Fluent C++","description":"Jonathan Boccara's blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.fluentcpp.com/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"}]}</script> <script>window._wpemojiSettings={"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.fluentcpp.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.5.3"}}; !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);</script> <script src='//www.fluentcpp.com/wp-content/cache/wpfc-minified/btlw58o/9ubyi.js' type="text/javascript"></script> <script>var _thrive_share_no_params={'url': "https://www.fluentcpp.com/getthemap/"}; _thrive_share_no_params.twitter=true; jQuery(document).ready(function (){ ThriveApp.display_no_shares(_thrive_share_no_params); });</script> <script>_thriveCurrentPost=3551;</script> <script defer src='//www.fluentcpp.com/wp-content/cache/wpfc-minified/rsppfk8/27fpn.js' type="text/javascript"></script> <script defer type="text/javascript" src="https://stats.wp.com/e-202423.js" id="jetpack-stats-js" data-wp-strategy="defer"></script> <script id="jetpack-stats-js-after">_stq=window._stq||[]; _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"214950964\",\"post\":\"3551\",\"tz\":\"0\",\"srv\":\"www.fluentcpp.com\",\"j\":\"1:13.4.3\"}") ]); _stq.push([ "clickTrackerInit", "214950964", "3551" ]);</script> <script>if(window.attachEvent){window.attachEvent('onload',wpfdr_google);}else if(window.addEventListener){window.addEventListener('load', wpfdr_google,false);}function wpfdr_google(){jQuery("link[wpfc-href]").each(function(i,e){jQuery(e).attr("href", jQuery(e).attr("wpfc-href"));});}</script> </body> </html><!-- WP Fastest Cache file was created in 0.19785690307617 seconds, on 03-06-24 7:34:11 -->