<?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[std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>ähnlich wie beim Zugriff auf das Element einer Matrix über Zeile und Spalte, würde ich gerne auf meine Daten zugreifen, wobei in meinem Fall die beiden Keys keine Ganzzahlen, sondern Objekte eines bestimmten Typs sind. Noch konkreter sind es shared_ptr auf Objekte eines bestimmten Typs.</p>
<p>Ich suche also etwas wie eine Map mit zwei Keys. Im Idealfall wäre es sogar noch egal, in welcher Reihenfolge die Keys angegeben werden. Mir ist bisher nichts besseres eingefallen als die im Betreff genannte map, aber ganz glücklich bin ich damit nicht:</p>
<pre><code>std::map&lt;std::pair&lt;std::shared_ptr&lt;MyType&gt;, std::shared_ptr&lt;MyType&gt;&gt;, MyOtherType&gt;
</code></pre>
<p>Oder ist gar sowas sinnvoll?</p>
<pre><code>std::map&lt;std::shared_ptr&lt;MyType&gt;, std::map&lt;std::shared_ptr&lt;MyType&gt;, MyOtherType&gt;&gt;
</code></pre>
<p>Für einen Tipp, wie man sowas elegant löst, wäre ich dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/325979/std-map-lt-std-pair-lt-std-shared_ptr-lt-mytype-gt-std-shared_ptr-lt-mytype-gt-gt-myothertype-gt-oder-so-ähnlich</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 16:18:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/325979.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 May 2014 16:54:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 16:54:19 GMT]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>ähnlich wie beim Zugriff auf das Element einer Matrix über Zeile und Spalte, würde ich gerne auf meine Daten zugreifen, wobei in meinem Fall die beiden Keys keine Ganzzahlen, sondern Objekte eines bestimmten Typs sind. Noch konkreter sind es shared_ptr auf Objekte eines bestimmten Typs.</p>
<p>Ich suche also etwas wie eine Map mit zwei Keys. Im Idealfall wäre es sogar noch egal, in welcher Reihenfolge die Keys angegeben werden. Mir ist bisher nichts besseres eingefallen als die im Betreff genannte map, aber ganz glücklich bin ich damit nicht:</p>
<pre><code>std::map&lt;std::pair&lt;std::shared_ptr&lt;MyType&gt;, std::shared_ptr&lt;MyType&gt;&gt;, MyOtherType&gt;
</code></pre>
<p>Oder ist gar sowas sinnvoll?</p>
<pre><code>std::map&lt;std::shared_ptr&lt;MyType&gt;, std::map&lt;std::shared_ptr&lt;MyType&gt;, MyOtherType&gt;&gt;
</code></pre>
<p>Für einen Tipp, wie man sowas elegant löst, wäre ich dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400945</guid><dc:creator><![CDATA[gutichschreibwasrein]]></dc:creator><pubDate>Mon, 26 May 2014 16:54:19 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 17:18:47 GMT]]></title><description><![CDATA[<p>Dein erster Versuch passt doch. Du musst nur noch eine passende Vergleichsoperation angeben, bei der die Reihefolge egal ist.</p>
<p>Dein zweiter Vorschlag kann dies nicht leisten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400950</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 26 May 2014 17:18:47 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 17:38:14 GMT]]></title><description><![CDATA[<p>Dann war ich ja zumindest nicht ganz auf dem Holzweg.</p>
<p>Dass ich durch eine selbst implementierte Vergleichsoperation auch beim Zugriff auf die Elemente unabhängig von der Reihenfolge der beiden Keys werde, hatte ich nicht bedacht.<br />
Ich stehe zwar noch ein wenig auf dem Schlauch, wie diese Vergleichsoperation dann aussehen muss, aber wenn ich noch ein bisschen drüber nachdenke, werde ich das hoffentlich hinbekommen :-).</p>
<p>Vielen Dank jedenfalls für den Hinweis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400952</guid><dc:creator><![CDATA[gutichschreibwasrein]]></dc:creator><pubDate>Mon, 26 May 2014 17:38:14 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 18:10:40 GMT]]></title><description><![CDATA[<p>Die Vergleichsfunktion sieht dann ungefähr so aus:</p>
<pre><code>return std::min(lhs,rhs) &lt; std::max(lhs,rhs);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2400958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400958</guid><dc:creator><![CDATA[fern]]></dc:creator><pubDate>Mon, 26 May 2014 18:10:40 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 18:12:26 GMT]]></title><description><![CDATA[<p>... lol, das war Unfug. Mal brav wieder vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400961</guid><dc:creator><![CDATA[fern]]></dc:creator><pubDate>Mon, 26 May 2014 18:12:26 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 18:40:00 GMT]]></title><description><![CDATA[<p>fern schrieb:</p>
<blockquote>
<p>... lol, das war Unfug. Mal brav wieder vergessen.</p>
</blockquote>
<p>Zeigt aber schon, wohin die Reise geht. Man muss das kleinere Element der linken Seite mit dem kleineren Element der rechten Seite vergleichen und bei Gleichheit mit den beiden groesseren Elemente fortfahren.</p>
<p>&quot;Kleiner&quot; steht hierbei fuer die Ordnungsrelation, egal welche Semantik diese ausdruecken soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400972</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 26 May 2014 18:40:00 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 19:00:40 GMT]]></title><description><![CDATA[<p>Wenn ich den operator&lt; von std::pair als Grundlage nehme, müsste das so aussehen, denke ich.</p>
<pre><code>return std::min(lhs.first, lhs.second) &lt; std::min(rhs.first, rhs.second) ||
       (!(std::min(rhs.first, rhs.second) &lt; std::min(lhs.first, lhs.second))&amp;&amp;
       std::max(lhs.first, lhs.second) &lt; std::max(rhs.first, rhs.second);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2400979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400979</guid><dc:creator><![CDATA[gutichschreibwasrein]]></dc:creator><pubDate>Mon, 26 May 2014 19:00:40 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 19:47:50 GMT]]></title><description><![CDATA[<pre><code>std::map&lt;std::pair&lt;std::shared_ptr&lt;MyType&gt;, std::shared_ptr&lt;MyType&gt;&gt;, MyOtherType&gt;
</code></pre>
<p>sollte doch gar nicht compilen o.O</p>
<p>immerhin is da ein Bitshift drin <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Schreib lieber</p>
<pre><code>std::map&lt;std::pair&lt;std::shared_ptr&lt;MyType&gt;, std::shared_ptr&lt;MyType&gt; &gt;, MyOtherType&gt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2400985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400985</guid><dc:creator><![CDATA[Synonym]]></dc:creator><pubDate>Mon, 26 May 2014 19:47:50 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 20:01:51 GMT]]></title><description><![CDATA[<p>Synonym schrieb:</p>
<blockquote>
<p>sollte doch gar nicht compilen o.O</p>
<p>immerhin is da ein Bitshift drin <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Ich denke, 2014 kann man so langsam C++11 stillschweigend voraussetzen und eher im Gegenteil kenntlich machen, wenn etwas ausdrücklich C++98/TR1 sein soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400987</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 26 May 2014 20:01:51 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 20:13:37 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Synonym schrieb:</p>
<blockquote>
<p>sollte doch gar nicht compilen o.O</p>
<p>immerhin is da ein Bitshift drin <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Ich denke, 2014 kann man so langsam C++11 stillschweigend voraussetzen und eher im Gegenteil kenntlich machen, wenn etwas ausdrücklich C++98/TR1 sein soll.</p>
</blockquote>
<p>Hast natürlich recht... habe nicht gesehen das er std::shared_ptr verwendet hatte... Bin schon zu geschädigt von unserer Software</p>
<p>Ja wir können nur 98/tr1 verwenden<br />
Ja wir würden gerne was neueres nehmen</p>
<p>Nein es ist uns leider aus diversen Gründen nicht möglich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400992</guid><dc:creator><![CDATA[Synonym]]></dc:creator><pubDate>Mon, 26 May 2014 20:13:37 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 20:40:14 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>C++98/TR1</p>
</blockquote>
<p>Hab vorhin nichts gesagt, weil ich weiss, dass du das nicht so gemeint hast, aber jetzt muss ich das tun bevor sich das noch verbreitet:</p>
<p>Der TR1 ist eine Library Extension für C++03, was ein Sprachbugfix für C++98 war. Daher meintest du C++03/TR1 und nicht C++98/TR1 (was schlicht falsch ist).</p>
<p>Nebenbei ist std::tr1::shared_ptr auch in C++03 verfügbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400995</guid><dc:creator><![CDATA[korekturr]]></dc:creator><pubDate>Mon, 26 May 2014 20:40:14 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 20:52:54 GMT]]></title><description><![CDATA[<p>Das ist ein '/' im Sinne von 'oder'.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400998</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 26 May 2014 20:52:54 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 21:01:53 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Das ist ein '/' im Sinne von 'oder'.</p>
</blockquote>
<p>Was auch seltsam ist, da es beides zwei unterschiedliche Dinge sind. Aber egal, sofern niemand mehr</p>
<blockquote>
<p>wir können nur 98/tr1 verwenden</p>
</blockquote>
<p>behaupt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2401002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401002</guid><dc:creator><![CDATA[korekturr]]></dc:creator><pubDate>Mon, 26 May 2014 21:01:53 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;std::pair&amp;lt;std::shared_ptr&amp;lt;MyType&amp;gt;, std::shared_ptr&amp;lt;MyType&amp;gt;&amp;gt;, MyOtherType&amp;gt; oder so ähnlich on Mon, 26 May 2014 21:51:28 GMT]]></title><description><![CDATA[<p>korekturr schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Das ist ein '/' im Sinne von 'oder'.</p>
</blockquote>
<p>Was auch seltsam ist, da es beides zwei unterschiedliche Dinge sind.</p>
</blockquote>
<p><a href="http://de.wikipedia.org/wiki//#Schr.C3.A4gstrich_zur_Kennzeichnung_der_Verbindung" rel="nofollow">http://de.wikipedia.org/wiki//#Schr.C3.A4gstrich_zur_Kennzeichnung_der_Verbindung</a></p>
<blockquote>
<p>Der Schrägstrich kann zur „Angaben mehrerer (alternativer) Möglichkeiten im Sinne einer Verbindung mit und, <strong>oder</strong>, <strong>bzw.</strong>, bis oder dergleichen“ verwendet werden,[3] zum Beispiel: Region Leipzig/Halle, das Duo Becker/Stich, im Schuljahr 2014/2015.</p>
<p>[3] § 106 der amtlichen Regelung der deutschen Rechtschreibung</p>
</blockquote>
<p>Ist mir rätselhaft, wie dir noch nie diese Bedeutung begegnet sein kann. Das wird doch andauernd so benutzt.</p>
<p>Aber es wird wirklich Offtopic. Jeder weiß, was gemeint ist. Und falls das wirklich noch jemand missverstanden hat, dann hast du es ja nun nochmal ausdrücklich klargestellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2401009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401009</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 26 May 2014 21:51:28 GMT</pubDate></item></channel></rss>