<?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[map nacch anderen kriterien sortieren]]></title><description><![CDATA[<pre><code class="language-cpp">std::map&lt;std::string,std::pair&lt;UINT,CScale*&gt; &gt; Scales;
</code></pre>
<p>ich möchte gerne die map nach dem <strong>UINT</strong> sortiert bzw. gruppiert haben. Geht das, oder muss ich das irgendwie anders lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/216755/map-nacch-anderen-kriterien-sortieren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 07:01:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/216755.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Jun 2008 08:24:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to map nacch anderen kriterien sortieren on Sat, 28 Jun 2008 08:24:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::map&lt;std::string,std::pair&lt;UINT,CScale*&gt; &gt; Scales;
</code></pre>
<p>ich möchte gerne die map nach dem <strong>UINT</strong> sortiert bzw. gruppiert haben. Geht das, oder muss ich das irgendwie anders lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537310</guid><dc:creator><![CDATA[GutenMorgen]]></dc:creator><pubDate>Sat, 28 Jun 2008 08:24:44 GMT</pubDate></item><item><title><![CDATA[Reply to map nacch anderen kriterien sortieren on Sat, 28 Jun 2008 08:47:38 GMT]]></title><description><![CDATA[<p>Du kannst der Map doch einen less-Templateparameter mit auf den weg geben:</p>
<pre><code class="language-cpp">template &lt;typename T1, typename T2&gt;
struct keyless : std::binary_function&lt;std::pair&lt;T1, T2&gt; const&amp;, std::pair&lt;T1, T2&gt; const&amp;, bool&gt; {
    bool operator ()(std::pair&lt;T1, T2&gt; const&amp; a, std::pair&lt;T1, T2&gt; const&amp; b) { return a.first &lt; b.first; }
};

std::map&lt;std::string, std::pair&lt;UINT,CScale*&gt;, keyless&lt;UINT, CScale*&gt; &gt; Scales;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1537316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537316</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sat, 28 Jun 2008 08:47:38 GMT</pubDate></item><item><title><![CDATA[Reply to map nacch anderen kriterien sortieren on Sat, 28 Jun 2008 09:14:15 GMT]]></title><description><![CDATA[<p>sehr abstrakt der Code;) allerding diese fehlermeldung:</p>
<pre><code>d:\Programme\Microsoft Visual Studio .NET 2003\Vc7\include\map(144): error C2664: 'bool keyless&lt;T1,T2&gt;::operator ()(const std::pair&lt;_Ty1,_Ty2&gt; &amp;,const std::pair&lt;_Ty1,_Ty2&gt; &amp;)' : cannot convert parameter 1 from 'const std::map&lt;_Kty,_Ty,_Pr&gt;::key_type' to 'const std::pair&lt;_Ty1,_Ty2&gt; &amp;'
        with
        [
            T1=UINT,
            T2=CScale *,
            _Ty1=UINT,
            _Ty2=CScale *
        ]
        and
        [
            _Kty=std::string,
            _Ty=std::pair&lt;UINT,CScale *&gt;,
            _Pr=keyless&lt;UINT,CScale *&gt;
        ]
        and
        [
            _Ty1=UINT,
            _Ty2=CScale *
        ]
</code></pre>
<p>liegst vll an meinen typedef?</p>
<pre><code class="language-cpp">template &lt;typename T1, typename T2&gt; 
struct keyless : std::binary_function&lt;std::pair&lt;T1, T2&gt; const&amp;, std::pair&lt;T1, T2&gt; const&amp;, bool&gt; { 
    bool operator ()(std::pair&lt;T1, T2&gt; const&amp; a, std::pair&lt;T1, T2&gt; const&amp; b) { return a.first &lt; b.first; } 
}; 

typedef std::map&lt;std::string, std::pair&lt;UINT,CScale*&gt;, keyless&lt;UINT, CScale*&gt; &gt; Scales_t;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1537329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537329</guid><dc:creator><![CDATA[GutenMorgen]]></dc:creator><pubDate>Sat, 28 Jun 2008 09:14:15 GMT</pubDate></item><item><title><![CDATA[Reply to map nacch anderen kriterien sortieren on Sat, 28 Jun 2008 09:30:26 GMT]]></title><description><![CDATA[<p>Sorry, ich habe nicht aufgepasst. Das klappt natürlich nicht.</p>
<p>Eine Map kann *nur* nach ihrem Key-Typ sortiert werden. Darauf beruht das Konzept der map. Du hast vor, sie nach ihrem Wert zu sortieren – das kommt mir komisch vor. Wieso ist das UINT nicht Teil des Schlüssels, wenn Du danach sortieren möchtest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537338</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sat, 28 Jun 2008 09:30:26 GMT</pubDate></item><item><title><![CDATA[Reply to map nacch anderen kriterien sortieren on Sat, 28 Jun 2008 09:41:26 GMT]]></title><description><![CDATA[<p>genau konrad, das habe ich bezweifelt.. naja muss das nun etwas anderes lösen aber trozdem danke:) aber wenn ich mir dein template anschaue hab ich noch paar fragen:</p>
<ol>
<li></li>
</ol>
<pre><code class="language-cpp">binary_function
</code></pre>
<p>ist ja ne abstrakte basisklasse oder?</p>
<ol start="2">
<li></li>
</ol>
<pre><code class="language-cpp">hier struct keyless : std::binary_function....
</code></pre>
<p>hier leitest du ja keyless von binary_function ab? kann man strukturen von klassen ableiten?</p>
<p>3. müsste nach dem &quot;:&quot; kein public kommen oder so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537342</guid><dc:creator><![CDATA[GutenMorgen]]></dc:creator><pubDate>Sat, 28 Jun 2008 09:41:26 GMT</pubDate></item><item><title><![CDATA[Reply to map nacch anderen kriterien sortieren on Sat, 28 Jun 2008 09:46:16 GMT]]></title><description><![CDATA[<p>EDIT:</p>
<p>ja das UINT ist nachträglich hinzugekommen, deswegen der konstrukt:</p>
<p>du meinst würde ich es so machen:</p>
<pre><code class="language-cpp">typedef std::map&lt;std::pair&lt;std::string,UINT&gt;, CScale*&gt; &gt; Scales_t;
</code></pre>
<p>könnte ich einaml nach UINT sortieren und nach std::String?</p>
<p>naja ich will über den Key , also über den string auf die CScale pointer zugriefen können, allerding will ich die CScalepointer in einer funktion auch nach UINT sortiert iterieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537347</guid><dc:creator><![CDATA[GutenMorgen]]></dc:creator><pubDate>Sat, 28 Jun 2008 09:46:16 GMT</pubDate></item><item><title><![CDATA[Reply to map nacch anderen kriterien sortieren on Sat, 28 Jun 2008 09:46:44 GMT]]></title><description><![CDATA[<p>GutenMorgen schrieb:</p>
<blockquote>
<ol>
<li></li>
</ol>
<pre><code class="language-cpp">binary_function
</code></pre>
<p>ist ja ne abstrakte basisklasse oder?</p>
</blockquote>
<p>Nein, sie ist nicht abstrakt. Es handelt sich dabei nur um einen kleinen Helper aus der Standardbibliothek, der einige 'typedef's vornimmt. Strenggenommen ist das im vorliegenden Fall auch total unnötig, aber ich finde, dadurch sieht man besser, wofür die Struktur da ist.</p>
<blockquote>
<ol start="2">
<li></li>
</ol>
<pre><code class="language-cpp">hier struct keyless : std::binary_function....
</code></pre>
<p>hier leitest du ja keyless von binary_function ab? kann man strukturen von klassen ableiten?</p>
</blockquote>
<p>Structs und Klassen sind in C++ quasi dasselbe. Die einzigen Unterschiede sind die unterschiedlichen Standard-Sichtbarkeitsbereiche der Members ('public' bei Structs, 'private' bei Klassen), und …</p>
<blockquote>
<p>3. müsste nach dem &quot;:&quot; kein public kommen oder so?</p>
</blockquote>
<p>Nein, auch das ist bei Structs der Standard, daher kann es hier ausgelassen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537348</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sat, 28 Jun 2008 09:46:44 GMT</pubDate></item><item><title><![CDATA[Reply to map nacch anderen kriterien sortieren on Sat, 28 Jun 2008 09:53:11 GMT]]></title><description><![CDATA[<p>struct und class ist im prinzip das gleiche, sie unterscheiden sich nur in den standardkontext der member. bei struct ist alles standardgemäß public bei class alles private.</p>
<p>den gültigkeitsbereich hinter dem ableiten kann man weglassen, wenn man die standardvariante haben will. bei class sollte das wie auch bei den members private sein, was man eigentlich nur sehr selten will und bei struct sollte das public sein. hinschreiben sollte man es eigentlich trotzdem, aber notwendig ist es nicht.</p>
<p>edit: ich bin zu langsam...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537350</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Sat, 28 Jun 2008 09:53:11 GMT</pubDate></item><item><title><![CDATA[Reply to map nacch anderen kriterien sortieren on Sat, 28 Jun 2008 10:00:11 GMT]]></title><description><![CDATA[<p>GutenMorgen schrieb:</p>
<blockquote>
<p>EDIT:</p>
<p>ja das UINT ist nachträglich hinzugekommen, deswegen der konstrukt:</p>
<p>du meinst würde ich es so machen:</p>
<pre><code class="language-cpp">typedef std::map&lt;std::pair&lt;std::string,UINT&gt;, CScale*&gt; &gt; Scales_t;
</code></pre>
<p>könnte ich einaml nach UINT sortieren und nach std::String?</p>
<p>naja ich will über den Key , also über den string auf die CScale pointer zugriefen können, allerding will ich die CScalepointer in einer funktion auch nach UINT sortiert iterieren</p>
</blockquote>
<p>Na ja, da willst Du quasi zwei unterschiedliche Dinge tun. Üblicherweise sollte man da versuchen, klar zwischen verschiedenen Aufgaben zu trennen (es sei denn, Performance ist hier ausschlaggebend). D.h. ich würde Dir raten, die 'map' erst mal mit dem String als Schlüssel zu belassen und für das sortierte Durchiterieren einen anderen Weg zu gehen, nämlich die Daten in einen Vektor zu kopieren und diesen zu sortieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537355</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sat, 28 Jun 2008 10:00:11 GMT</pubDate></item></channel></rss>