<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Warum sind std::set&#x2F;std::map in unterschiedlichen Headern?]]></title><description><![CDATA[<p>Warum gibt es zwei Headers <code>&lt;set&gt;</code> und <code>&lt;map&gt;</code> wenn beide quasi das gleiche tun? std::set ist eine std::map mit einer leeren Value, beide sind nur ein schlankes Interface um einen gemeinsamen Red-Black-Tree. Man spart sich also nichts an Compilezeit, wenn man nur eines von beiden included.</p>
<p>Gleiches mit <code>&lt;unordered_set&gt;</code> und <code>&lt;unordered_map&gt;</code> .</p>
<p>Umgekehrt mit <code>&lt;queue&gt;</code> : <code>std::priority_queue</code> und <code>std::queue</code> sind zwei völlig verschiedene Container und trotzdem im gleichen Headern. <code>std::priority_queue</code> muss den ganzen Heap-Algorithmus implementieren (setzt default-mässig auf <code>std::vector</code> auf), <code>std::queue</code> ist nur ein dummer Wrapper um einen Container (default-mässig auf <code>std::deque</code> ).</p>
<p>Steckt dahinter ein Sinn oder ist das nur mit &quot;historisch gewachsen&quot; zu erklären?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/326989/warum-sind-std-set-std-map-in-unterschiedlichen-headern</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 20:22:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326989.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Jul 2014 12:42:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum sind std::set&#x2F;std::map in unterschiedlichen Headern? on Fri, 18 Jul 2014 12:42:50 GMT]]></title><description><![CDATA[<p>Warum gibt es zwei Headers <code>&lt;set&gt;</code> und <code>&lt;map&gt;</code> wenn beide quasi das gleiche tun? std::set ist eine std::map mit einer leeren Value, beide sind nur ein schlankes Interface um einen gemeinsamen Red-Black-Tree. Man spart sich also nichts an Compilezeit, wenn man nur eines von beiden included.</p>
<p>Gleiches mit <code>&lt;unordered_set&gt;</code> und <code>&lt;unordered_map&gt;</code> .</p>
<p>Umgekehrt mit <code>&lt;queue&gt;</code> : <code>std::priority_queue</code> und <code>std::queue</code> sind zwei völlig verschiedene Container und trotzdem im gleichen Headern. <code>std::priority_queue</code> muss den ganzen Heap-Algorithmus implementieren (setzt default-mässig auf <code>std::vector</code> auf), <code>std::queue</code> ist nur ein dummer Wrapper um einen Container (default-mässig auf <code>std::deque</code> ).</p>
<p>Steckt dahinter ein Sinn oder ist das nur mit &quot;historisch gewachsen&quot; zu erklären?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409233</guid><dc:creator><![CDATA[gretchen]]></dc:creator><pubDate>Fri, 18 Jul 2014 12:42:50 GMT</pubDate></item><item><title><![CDATA[Reply to Warum sind std::set&#x2F;std::map in unterschiedlichen Headern? on Fri, 18 Jul 2014 12:58:42 GMT]]></title><description><![CDATA[<p>Na,</p>
<p>weil es ist so ist und im Standard steht.</p>
<p>Deswegen ist es so. Weil es im Standard steht.</p>
<p>Weil es so ist und im Standard steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409236</guid><dc:creator><![CDATA[ichhoffedasistrichtig]]></dc:creator><pubDate>Fri, 18 Jul 2014 12:58:42 GMT</pubDate></item><item><title><![CDATA[Reply to Warum sind std::set&#x2F;std::map in unterschiedlichen Headern? on Fri, 18 Jul 2014 13:01:59 GMT]]></title><description><![CDATA[<p>Erstmal: Ich würde eher eine Map mithilfe eines Sets implementieren, quasi als Typ ein std::pair mit Key und Value als Typen, wo aber nur nach Key sortiert wird.</p>
<p>Aber im Prinzip hab ich mich das gleiche auch schonmal gefragt... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409238</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 18 Jul 2014 13:01:59 GMT</pubDate></item><item><title><![CDATA[Reply to Warum sind std::set&#x2F;std::map in unterschiedlichen Headern? on Fri, 18 Jul 2014 18:24:16 GMT]]></title><description><![CDATA[<p>Nicht zu vergessen die std::multimap (und std::multiset! ... und std::unordered_multimap!! ... und std::unordered_multiset!!!) die zu 100% jeder braucht, der einen der entsprechenden Header included!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409285</guid><dc:creator><![CDATA[multimiliardär]]></dc:creator><pubDate>Fri, 18 Jul 2014 18:24:16 GMT</pubDate></item><item><title><![CDATA[Reply to Warum sind std::set&#x2F;std::map in unterschiedlichen Headern? on Sat, 19 Jul 2014 20:04:04 GMT]]></title><description><![CDATA[<p>Das hat weniger mit Kompilierzeit zu tun als mit logischer Gliederung. Set und Map sind verschiedene Konzepte, wie sie implementiert sind ist egal. Zumal das vom Standard nicht vorgeschrieben wird.</p>
<p>Ich finde gut dass hier getrennt wird, könnte man auch ruhig an ein paar anderen Orten machen. &lt;functional&gt; und &lt;memory&gt; sind z.B. ziemlich überladen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409448</guid><dc:creator><![CDATA[Seine Strassen, von jeher]]></dc:creator><pubDate>Sat, 19 Jul 2014 20:04:04 GMT</pubDate></item></channel></rss>