<?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[STL List mit Zeigern sortieren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine STL List die mit Zeigern auf Objekte gefüllt ist.<br />
Wie kann ich diese nun sortieren?</p>
<pre><code class="language-cpp">list&lt;Word *&gt; wordIndex;  //Definition der Liste
..
Word *newWord = new Akronym();
wordIndex.push_back(newWord);   //Element eingfügen
...
wordIndex.sort(sortMethod);  //sortieren über Methode
wordIndex.sort();            //bzw. ohne methode
...

bool sortMethod(const Word * lhs, const Word * rhs) {
    return true; //Sortierung...
}
</code></pre>
<p>Die Sortiermethode hab ich über die Klasse geschrieben:</p>
<pre><code class="language-cpp">bool sortMethod(const Word * lhs, const Word * rhs) {
    return true;
}

class Verwaltungsklasse{}
</code></pre>
<p>Mit Strings konnte ich meine Liste ganz einfach über die Sortierfunktion sortieren lassen.<br />
Mit Zeigern funktioniert das leider nicht mehr... Kann mir jemand ein Tipp geben?</p>
<p>Vielen Dank im Voraus.</p>
<p>Compiler gibt mir folgendes:<br />
build/Debug/Cygwin_4.x-Windows/main.o: In function <code>\_Z10sortMethodPK4WordS1_': /cygdrive/c/Users/Manuel/Documents/NetBeansProjects/nitsch\_klausur\_wortindex/IndexVerwaltung.h:21: multiple definition of</code>sortMethod(Word const*, Word const*)'<br />
build/Debug/Cygwin_4.x-Windows/IndexVerwaltung.o:/cygdrive/c/Users/Manuel/Documents/NetBeansProjects/nitsch_klausur_wortindex/IndexVerwaltung.h:21: first defined here<br />
collect2: ld returned 1 exit status</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300631/stl-list-mit-zeigern-sortieren</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 17:22:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300631.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Mar 2012 00:33:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to STL List mit Zeigern sortieren on Wed, 07 Mar 2012 00:33:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine STL List die mit Zeigern auf Objekte gefüllt ist.<br />
Wie kann ich diese nun sortieren?</p>
<pre><code class="language-cpp">list&lt;Word *&gt; wordIndex;  //Definition der Liste
..
Word *newWord = new Akronym();
wordIndex.push_back(newWord);   //Element eingfügen
...
wordIndex.sort(sortMethod);  //sortieren über Methode
wordIndex.sort();            //bzw. ohne methode
...

bool sortMethod(const Word * lhs, const Word * rhs) {
    return true; //Sortierung...
}
</code></pre>
<p>Die Sortiermethode hab ich über die Klasse geschrieben:</p>
<pre><code class="language-cpp">bool sortMethod(const Word * lhs, const Word * rhs) {
    return true;
}

class Verwaltungsklasse{}
</code></pre>
<p>Mit Strings konnte ich meine Liste ganz einfach über die Sortierfunktion sortieren lassen.<br />
Mit Zeigern funktioniert das leider nicht mehr... Kann mir jemand ein Tipp geben?</p>
<p>Vielen Dank im Voraus.</p>
<p>Compiler gibt mir folgendes:<br />
build/Debug/Cygwin_4.x-Windows/main.o: In function <code>\_Z10sortMethodPK4WordS1_': /cygdrive/c/Users/Manuel/Documents/NetBeansProjects/nitsch\_klausur\_wortindex/IndexVerwaltung.h:21: multiple definition of</code>sortMethod(Word const*, Word const*)'<br />
build/Debug/Cygwin_4.x-Windows/IndexVerwaltung.o:/cygdrive/c/Users/Manuel/Documents/NetBeansProjects/nitsch_klausur_wortindex/IndexVerwaltung.h:21: first defined here<br />
collect2: ld returned 1 exit status</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189286</guid><dc:creator><![CDATA[Moinuel]]></dc:creator><pubDate>Wed, 07 Mar 2012 00:33:07 GMT</pubDate></item><item><title><![CDATA[Reply to STL List mit Zeigern sortieren on Wed, 07 Mar 2012 01:42:21 GMT]]></title><description><![CDATA[<p>Wenn du den Fehler mal gelesen hättest anstatt vor Schreck vom Stuhl zu kippen, hättest du bemerkt, dass er einfach nur bemängelt die Definition zwei mal gefunden zu haben. Wahrscheinlich hast du die Definition in einem Header. Du kannst die Definition entweder in eine .cpp auslagern, oder sie inline machen.</p>
<pre><code class="language-cpp">void foo(); // Header
void foo() {} // .cpp
// oder
inline void foo() {} // Header
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2189290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189290</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 07 Mar 2012 01:42:21 GMT</pubDate></item><item><title><![CDATA[Reply to STL List mit Zeigern sortieren on Wed, 07 Mar 2012 01:59:10 GMT]]></title><description><![CDATA[<p>Manuel schrieb:</p>
<blockquote>
<p>Die Sortiermethode hab ich über die Klasse geschrieben:</p>
</blockquote>
<p>Warum findest Du <em>das</em> bemerkenswert?</p>
<p>Warum blanke Zeiger?</p>
<pre><code class="language-cpp">#include &lt;memory&gt;
#include &lt;list&gt;
#include &lt;string&gt;
#include &lt;iostream&gt;

bool compare( std::shared_ptr&lt; std::string &gt; lhs, std::shared_ptr&lt; std::string &gt; rhs )
{
  return *lhs &lt; *rhs;
}

int main()
{
    std::list&lt; std::shared_ptr&lt; std::string &gt; &gt; index;

    index.push_back( std::shared_ptr&lt; std::string &gt;( new std::string( &quot;C&quot; ) ) );
    index.push_back( std::shared_ptr&lt; std::string &gt;( new std::string( &quot;E&quot; ) ) );
    index.push_back( std::shared_ptr&lt; std::string &gt;( new std::string( &quot;G&quot; ) ) );
    index.push_back( std::shared_ptr&lt; std::string &gt;( new std::string( &quot;A&quot; ) ) );
    index.push_back( std::shared_ptr&lt; std::string &gt;( new std::string( &quot;F&quot; ) ) );

    index.sort( compare );

    for( std::list&lt; std::shared_ptr&lt; std::string &gt; &gt;::iterator i = index.begin( ); i != index.end(); ++i )
        std::cout &lt;&lt; *(*i) &lt;&lt; &quot;\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2189291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189291</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 07 Mar 2012 01:59:10 GMT</pubDate></item><item><title><![CDATA[Reply to STL List mit Zeigern sortieren on Wed, 07 Mar 2012 02:43:48 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Wenn du den Fehler mal gelesen hättest anstatt vor Schreck vom Stuhl zu kippen, hättest du bemerkt, dass er einfach nur bemängelt die Definition zwei mal gefunden zu haben. Wahrscheinlich hast du die Definition in einem Header. Du kannst die Definition entweder in eine .cpp auslagern, oder sie inline machen.</p>
<pre><code class="language-cpp">void foo(); // Header
void foo() {} // .cpp
// oder
inline void foo() {} // Header
</code></pre>
</blockquote>
<p>inline-tag hat mein problem gelöst. Danke für die schnelle Hilfe.</p>
<p>Swordfish schrieb:</p>
<blockquote>
<p>Warum findest Du das bemerkenswert?</p>
</blockquote>
<p>Wusste nicht genau, wo ich das hinschreiben muss und ob es da richtig ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189294</guid><dc:creator><![CDATA[Moinuel]]></dc:creator><pubDate>Wed, 07 Mar 2012 02:43:48 GMT</pubDate></item></channel></rss>