<?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[sort-Algo. innerhalb einer Klasse mit Funktiionspointer als Prädikat]]></title><description><![CDATA[<p>Kann mir irgendjemand sagen, wieso mein sort-Algorithmus nicht funktioniert.<br />
Mein Code sieht folgendermaßen aus:</p>
<blockquote>
<p>Header:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;algorithm&gt;
#include &lt;iterator&gt;
#include &quot;scanner.h&quot;
using namespace std;

#ifndef EM_H
#define EM_H

//KLASSEN:
class EMTable{
public:
	EMTable();
	EMTable(string const &amp; filename);
	void PrintEMTable();

private:
	
	//STRUKTUREN UND TYPEN

	struct TGoalsPoints{
		string country;	//Namen von Mannschaften
		size_t games;	//Anzahl der Spiele
		size_t shot;	//geschossene Tore
		size_t got;		//erhaltene Tore
		int dif;		//Differenz von geschossenen und erhaltenen Toren
		size_t points;	//Punkte einer Mannschaft
	};

	typedef vector&lt;TGoalsPoints&gt; TGroup;	//Ergebnisse einer Mannschaft
	typedef vector&lt;TGoalsPoints&gt;::size_type TGoalsPointsSizeType;

	typedef vector&lt;TGroup&gt; TResults;	//Alle Daten der EM-Ergebnisse
	typedef vector&lt;TGroup&gt;::size_type TGroupSizeType;

	//MEMBER UND CONSTANTS:

	//Gibt die maximale Anzahl an Mannschaften pro Gruppe an
	size_t const MAXNumberOfTeams;

	//Gibt die Maximale Anzahl an Gruppen an
	size_t const MAXNumberOfGroups;

	//Gibt die Anzahl der Zeichen einer Mannschaftsinformation in der EBNF-Grammatik an
	size_t const NumberOfSymbolsPerTeamLine;	

	//Beinhaltet alle Resultate
	TResults results;

	

	//PRIVATE-FUNKTIONEN
...
	void SortResults();
	void SortGroup(TGroup &amp; const group);
	bool CompareTeamPoints(TGoalsPoints const&amp;  left, TGoalsPoints const&amp; right);
...

};

#endif
</code></pre>
<p>[cpp]//Implementierung:</p>
<p>EMTable::EMTable() {</p>
<p>...<br />
this-&gt;SortResults();</p>
<p>...<br />
}</p>
<p>...<br />
//################################<br />
//Sortiert die Zahlen aufsteigend im Vektor-<br />
void EMTable::SortResults(){<br />
TGroupSizeType size = results.size();<br />
for(int i=0; i&lt; size; i++){<br />
this-&gt;SortGroup(<a href="http://results.at" rel="nofollow">results.at</a>(i));<br />
}<br />
}</p>
<p>bool EMTable::CompareTeamPoints(TGoalsPoints const&amp; left, TGoalsPoints const&amp; right){<br />
return left.points &gt; right.points;<br />
}</p>
<p>void EMTable::SortGroup(TGroup &amp; const group){<br />
<strong>sort(group.begin(), group.end(), CompareTeamPoints);</strong><br />
}[/cpp]</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/topic/303505/sort-algo-innerhalb-einer-klasse-mit-funktiionspointer-als-prädikat</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 11:08:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303505.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 May 2012 19:07:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to sort-Algo. innerhalb einer Klasse mit Funktiionspointer als Prädikat on Tue, 15 May 2012 19:07:52 GMT]]></title><description><![CDATA[<p>Kann mir irgendjemand sagen, wieso mein sort-Algorithmus nicht funktioniert.<br />
Mein Code sieht folgendermaßen aus:</p>
<blockquote>
<p>Header:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;algorithm&gt;
#include &lt;iterator&gt;
#include &quot;scanner.h&quot;
using namespace std;

#ifndef EM_H
#define EM_H

//KLASSEN:
class EMTable{
public:
	EMTable();
	EMTable(string const &amp; filename);
	void PrintEMTable();

private:
	
	//STRUKTUREN UND TYPEN

	struct TGoalsPoints{
		string country;	//Namen von Mannschaften
		size_t games;	//Anzahl der Spiele
		size_t shot;	//geschossene Tore
		size_t got;		//erhaltene Tore
		int dif;		//Differenz von geschossenen und erhaltenen Toren
		size_t points;	//Punkte einer Mannschaft
	};

	typedef vector&lt;TGoalsPoints&gt; TGroup;	//Ergebnisse einer Mannschaft
	typedef vector&lt;TGoalsPoints&gt;::size_type TGoalsPointsSizeType;

	typedef vector&lt;TGroup&gt; TResults;	//Alle Daten der EM-Ergebnisse
	typedef vector&lt;TGroup&gt;::size_type TGroupSizeType;

	//MEMBER UND CONSTANTS:

	//Gibt die maximale Anzahl an Mannschaften pro Gruppe an
	size_t const MAXNumberOfTeams;

	//Gibt die Maximale Anzahl an Gruppen an
	size_t const MAXNumberOfGroups;

	//Gibt die Anzahl der Zeichen einer Mannschaftsinformation in der EBNF-Grammatik an
	size_t const NumberOfSymbolsPerTeamLine;	

	//Beinhaltet alle Resultate
	TResults results;

	

	//PRIVATE-FUNKTIONEN
...
	void SortResults();
	void SortGroup(TGroup &amp; const group);
	bool CompareTeamPoints(TGoalsPoints const&amp;  left, TGoalsPoints const&amp; right);
...

};

#endif
</code></pre>
<p>[cpp]//Implementierung:</p>
<p>EMTable::EMTable() {</p>
<p>...<br />
this-&gt;SortResults();</p>
<p>...<br />
}</p>
<p>...<br />
//################################<br />
//Sortiert die Zahlen aufsteigend im Vektor-<br />
void EMTable::SortResults(){<br />
TGroupSizeType size = results.size();<br />
for(int i=0; i&lt; size; i++){<br />
this-&gt;SortGroup(<a href="http://results.at" rel="nofollow">results.at</a>(i));<br />
}<br />
}</p>
<p>bool EMTable::CompareTeamPoints(TGoalsPoints const&amp; left, TGoalsPoints const&amp; right){<br />
return left.points &gt; right.points;<br />
}</p>
<p>void EMTable::SortGroup(TGroup &amp; const group){<br />
<strong>sort(group.begin(), group.end(), CompareTeamPoints);</strong><br />
}[/cpp]</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2211896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211896</guid><dc:creator><![CDATA[DeCnJackZ]]></dc:creator><pubDate>Tue, 15 May 2012 19:07:52 GMT</pubDate></item><item><title><![CDATA[Reply to sort-Algo. innerhalb einer Klasse mit Funktiionspointer als Prädikat on Tue, 15 May 2012 20:14:19 GMT]]></title><description><![CDATA[<p>&quot;Funktioniert nicht&quot; ist keine brauchbare Fehlerbeschreibung. Was passiert? Was und warum erwartest du stattdessen? Siehe auch den ersten Link in meiner Signatur, wie man Fragen so stellt, dass sie auch beantwortet werden können.</p>
<p>Was mir schon einmal auffällt ist, dass deine Vergleichsfunktion ein (nicht-statischer) Member deiner Klasse ist, trotzdem aber zwei Klassenobjekte als Parameter hat. Das ist sicherlich nicht das was du meinst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211920</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 15 May 2012 20:14:19 GMT</pubDate></item></channel></rss>