<?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[sortieren von 3 vector&amp;lt;double&amp;gt;]]></title><description><![CDATA[<p>Ich möchte 3 Vektoren nacheinander sortieren. Nach einem Vektor ist ja einfach, aber ich weiß nicht, wie das mit drei Vektoren funktionieren soll.</p>
<p>Ich möchte eigentlich folgendes.<br />
Ich habe einen Datensatz mit Temperatur, Spannung und Strom, jeweils in einem Vektor alle gleich lang. Das sind Messwerte. Jetzt habe ich einen Arbeitspunkt mit Temperatur, Spannung und Strom.<br />
Was ich suche sind die 4 Punkte in dem Datensatz, bei denen die Differenz am geringsten ist</p>
<p>Ob probier jetzt schon eine ganze Zeit mit sort herum ... kommt aber nur Blödsinn bei raus.</p>
<p>Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186893/sortieren-von-3-vector-lt-double-gt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 11:55:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186893.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Jul 2007 12:04:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to sortieren von 3 vector&amp;lt;double&amp;gt; on Fri, 13 Jul 2007 12:04:43 GMT]]></title><description><![CDATA[<p>Ich möchte 3 Vektoren nacheinander sortieren. Nach einem Vektor ist ja einfach, aber ich weiß nicht, wie das mit drei Vektoren funktionieren soll.</p>
<p>Ich möchte eigentlich folgendes.<br />
Ich habe einen Datensatz mit Temperatur, Spannung und Strom, jeweils in einem Vektor alle gleich lang. Das sind Messwerte. Jetzt habe ich einen Arbeitspunkt mit Temperatur, Spannung und Strom.<br />
Was ich suche sind die 4 Punkte in dem Datensatz, bei denen die Differenz am geringsten ist</p>
<p>Ob probier jetzt schon eine ganze Zeit mit sort herum ... kommt aber nur Blödsinn bei raus.</p>
<p>Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1324625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324625</guid><dc:creator><![CDATA[Diplomand]]></dc:creator><pubDate>Fri, 13 Jul 2007 12:04:43 GMT</pubDate></item><item><title><![CDATA[Reply to sortieren von 3 vector&amp;lt;double&amp;gt; on Fri, 13 Jul 2007 12:10:52 GMT]]></title><description><![CDATA[<p>Du willst alle 3 Vektoren nach einem Kriterium sortieren?</p>
<p>Du solltest lieber nur einen Vektor benutzen, dessen Elemente eine Struktur darstellen.</p>
<pre><code class="language-cpp">struct Data
{
  double Temperatur, Spannung, Strom;
};

vector&lt;Data&gt; vDatas;

std::sort(vDatas.begin(), vDatas.end(), sortfunc); // sortfunc mußt du noch definieren
</code></pre>
<p>Wie sieht denn deine Sortierfunktion bisher aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1324629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324629</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Fri, 13 Jul 2007 12:10:52 GMT</pubDate></item><item><title><![CDATA[Reply to sortieren von 3 vector&amp;lt;double&amp;gt; on Fri, 13 Jul 2007 12:26:40 GMT]]></title><description><![CDATA[<p>wie die daten vorliegen ist im grunde nebensächlich, das kann höchstens den verwaltungsaufwand in die höhe treiben. wichtig ist die definition einer ordnung der elemente, damit es möglich ist, die vergleiche durchzuführen. ich würd mir dazu eine abbildung auf ein skalar ausdenken. naheliegend bei punktwolken dieser art: <a href="http://de.wikipedia.org/wiki/Euklidischer_Abstand" rel="nofollow">http://de.wikipedia.org/wiki/Euklidischer_Abstand</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1324642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324642</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Fri, 13 Jul 2007 12:26:40 GMT</pubDate></item><item><title><![CDATA[Reply to sortieren von 3 vector&amp;lt;double&amp;gt; on Fri, 13 Jul 2007 13:20:00 GMT]]></title><description><![CDATA[<p>Um die Sort Funktion gehts mir ja.<br />
Ich weiß nicht was da wie rein kommt. Bei meinem gesuche waren immer irgendwelche Parameter dabei(z.B. void). Damit kann ich nichts anfangen. Wofür stehen die. Was wird da übergeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1324698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324698</guid><dc:creator><![CDATA[Diplomand]]></dc:creator><pubDate>Fri, 13 Jul 2007 13:20:00 GMT</pubDate></item><item><title><![CDATA[Reply to sortieren von 3 vector&amp;lt;double&amp;gt; on Fri, 13 Jul 2007 13:30:14 GMT]]></title><description><![CDATA[<p>Erstmal solltest du die drei Vektoren wirklich zu einem zusammenfassen, wie es Th vorgeschlagen hat - dann brauchst du dich nicht mehr darum zu sorgen, ob und wie die einzelnen Wert zusammen bleiben.</p>
<p>Als nächstes mußt du dir ein Sortierkriterium überlegen, das zu deinen Daten und Anforderungen passt - ich würde die Datensätze anhand ihres Abstandes zum Ziel vergleichen:</p>
<pre><code class="language-cpp">struct sort_data
{
  Data selector;
  sort_data(const Data&amp; val) : selector(val) {}

  bool operator()(const Data&amp; l,const Data&amp; r)
  {
    return distance(l,selector)&lt;distance(r,selector);
  }
};

...
Data target=...;
sort(vDatas.begin(),vDatas.end(),sort_data(target));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1324706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324706</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 13 Jul 2007 13:30:14 GMT</pubDate></item><item><title><![CDATA[Reply to sortieren von 3 vector&amp;lt;double&amp;gt; on Fri, 13 Jul 2007 13:42:04 GMT]]></title><description><![CDATA[<p>ein ersatz für &quot;&lt;&quot;. sort verwendet den &lt; operator, um die zu sortierenden objekte zu vergleichen. wenn du da objekte reinballerst, für die kein &lt; op definiert ist, wird irgendwas verglichen. vielleicht die adresse oder so.</p>
<pre><code class="language-cpp">struct Datensatz
{
  double T, U, I; // urlaubsdaten ^^
  double dist(Datensatz &amp;other) const { 
    return sqrt(T*other.T + U*other.U + I*other.I);
  }
};

class Cmp
{
	Datensatz arbeitspunkt; // mit dem wollen wir vergleichen

	public:
		Cmp(Datensatz ab) : arbeitspunkt(ab) {}
		bool operator() (const Datensatz &amp;a, const Datensatz &amp;b) // true, wenn a &lt; b
		{
			return a.dist(arbeitspunkt) &lt; b.dist(arbeitspunkt); // das ist die &quot;magic&quot;
		}
};

int main() {
	Datensatz arbeitspunkt; // irgendwie füllen
	Cmp cmp(arbeitspunkt);
	std::vector&lt;Datensatz&gt; v; // füllen
	std::sort(v.begin(), v.end(), cmp);
	// v[0] - v[3] sind nun die datensätze mit geringstem abstand zum arbeitspunkt
}
</code></pre>
<p>ups, zu lang gebraucht ^^ erschreckend, wie ähnlich die snippets sich sehen Oo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1324712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324712</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Fri, 13 Jul 2007 13:42:04 GMT</pubDate></item></channel></rss>