<?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[Frage zu priority_queue mit eigener compare-Funktion]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Ich möchte eine priority_queue mit zugrundeliegendem vector&lt;int&gt; benutzen, dazu aber nicht den Standard-Vergleichsoperator operator&lt; von int, sondern meinen eigenen, also in</p>
<p>priority_queue&lt; int, vector&lt;int&gt;, greater&lt;int&gt; &gt; pq;</p>
<p>statt greater&lt;int&gt; meine eigene Vergleichsfunktion. Und das ganze wenn möglich ohne struct.</p>
<p>Geht das?</p>
<p>Danke für Lösungen!</p>
<p>Ciao, Fin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/133427/frage-zu-priority_queue-mit-eigener-compare-funktion</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 22:56:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/133427.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Jan 2006 17:34:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu priority_queue mit eigener compare-Funktion on Tue, 17 Jan 2006 17:34:56 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Ich möchte eine priority_queue mit zugrundeliegendem vector&lt;int&gt; benutzen, dazu aber nicht den Standard-Vergleichsoperator operator&lt; von int, sondern meinen eigenen, also in</p>
<p>priority_queue&lt; int, vector&lt;int&gt;, greater&lt;int&gt; &gt; pq;</p>
<p>statt greater&lt;int&gt; meine eigene Vergleichsfunktion. Und das ganze wenn möglich ohne struct.</p>
<p>Geht das?</p>
<p>Danke für Lösungen!</p>
<p>Ciao, Fin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/969153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/969153</guid><dc:creator><![CDATA[Fin]]></dc:creator><pubDate>Tue, 17 Jan 2006 17:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu priority_queue mit eigener compare-Funktion on Tue, 17 Jan 2006 17:41:59 GMT]]></title><description><![CDATA[<p>Was erwartest du?</p>
<p>Grundsätzlich sähe ein entsprechendes Vergleichsstruct ungefähr so aus:</p>
<pre><code class="language-cpp">struct Compare
{
    bool operator () (int i, int j)
    {
        return ((i * 1337) % 42) &lt; ((j * 1337) % 42);
    }
};
</code></pre>
<p>Dann benutzt du statt greater&lt;int&gt; Compare, sonst gibts nichts. Oder hab ich deine Frage überlesen?</p>
<p>/edit Oh, hab ich tatsächlich. Es sollte auch etwa so gehen:</p>
<pre><code class="language-cpp">priority_queue&lt;int, deque, bool (int, int)&gt; p (&amp;fun);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/969158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/969158</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Tue, 17 Jan 2006 17:41:59 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu priority_queue mit eigener compare-Funktion on Wed, 18 Jan 2006 10:46:49 GMT]]></title><description><![CDATA[<p>Kannst Du mal ein Beispiel bringen?</p>
<p>Egal, wie ich es mache, es gibt immer eine neue Fehlermeldung...</p>
<p>z.B.</p>
<pre><code class="language-cpp">bool test(int a, int b)
{
  if (a &gt; b)
    return true;
  else
    return false;
}

int main()
{
  priority_queue&lt;int, vector&lt;int&gt;, test() &gt; pq;
</code></pre>
<p>Gibt die Fehlermeldung:</p>
<pre><code>error: `bool test(int, int)' cannot appear in a constant-expression
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/969599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/969599</guid><dc:creator><![CDATA[Fin]]></dc:creator><pubDate>Wed, 18 Jan 2006 10:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu priority_queue mit eigener compare-Funktion on Wed, 18 Jan 2006 11:00:14 GMT]]></title><description><![CDATA[<p>schau dir doch mal das obige Beispiel an - richtig heißt es:</p>
<pre><code class="language-cpp">priority_queue&lt;int,vector&lt;int&gt;,bool(int,int)&gt; pq(test);
//                             ^^Typ(Funktion)   ^Exemplar
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/969612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/969612</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Wed, 18 Jan 2006 11:00:14 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu priority_queue mit eigener compare-Funktion on Wed, 18 Jan 2006 11:15:52 GMT]]></title><description><![CDATA[<p>So klappt's aber leider auch nicht:</p>
<pre><code>/usr/lib/gcc/x86_64-redhat-linux/3.4.4/../../../../include/c++/3.4.4/bits/stl_queue.h: In instantiation of `std::priority_queue&lt;int, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, bool ()(int, int)&gt;':
priority.cpp:31: instantiated from here
/usr/lib/gcc/x86_64-redhat-linux/3.4.4/../../../../include/c++/3.4.4/bits/stl_queue.h:359: error: field `std::priority_queue&lt;int, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, bool ()(int, int)&gt;::comp' invalidly declared function type
gmake: *** [priority.o] Error 1
</code></pre>
<p>Mit der</p>
<pre><code class="language-cpp">struct
</code></pre>
<p>Lösung hat's funktioniert, vielleicht geht's ja auch nicht anders.</p>
<p>Danke für die Hilfe soweit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/969621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/969621</guid><dc:creator><![CDATA[Fin]]></dc:creator><pubDate>Wed, 18 Jan 2006 11:15:52 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu priority_queue mit eigener compare-Funktion on Wed, 18 Jan 2006 17:10:15 GMT]]></title><description><![CDATA[<p>Es scheint nur mit Pointern zu funktionieren:</p>
<pre><code class="language-cpp">std::priority_queue&lt;int, std::vector&lt;int&gt;, bool (*) (int, int)&gt; p (&amp;test);
</code></pre>
<p>kompiliert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/969931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/969931</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Wed, 18 Jan 2006 17:10:15 GMT</pubDate></item></channel></rss>