<?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[Min Algorithmus über vector von vectoren]]></title><description><![CDATA[<p>Habe nen Vector (Size 30k) von Vectoren (Size 14), den man sich ale Matrix (30k x 14) vorstellen kann. Jetzt frage ich mich, was der effektivste bzw. schnellste Weg ist, das minimum jeder der 14 Spalten über die 30k Zeilen zu finden?</p>
<p>STL Algorithmen funktionieren ja nur auf einem einzelnen Containter. Also könnte ich drüber loopen und aus den jeweils ersten Elementen jedes Zeilenvektors einen neuen Vektor machen und das gleich dann für das jeweils zweite Element aller Zeilen usw. aber das ist wahrscheinlich ineffektiv.</p>
<p>Was ist sowieso generell schneller? Sortieren und dann den ersten Eintrag abgreifen oder minimum Algorithmen?</p>
<p>Danke für Eure Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/338959/min-algorithmus-über-vector-von-vectoren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 21:57:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/338959.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 Jul 2016 13:05:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Min Algorithmus über vector von vectoren on Sun, 24 Jul 2016 13:05:48 GMT]]></title><description><![CDATA[<p>Habe nen Vector (Size 30k) von Vectoren (Size 14), den man sich ale Matrix (30k x 14) vorstellen kann. Jetzt frage ich mich, was der effektivste bzw. schnellste Weg ist, das minimum jeder der 14 Spalten über die 30k Zeilen zu finden?</p>
<p>STL Algorithmen funktionieren ja nur auf einem einzelnen Containter. Also könnte ich drüber loopen und aus den jeweils ersten Elementen jedes Zeilenvektors einen neuen Vektor machen und das gleich dann für das jeweils zweite Element aller Zeilen usw. aber das ist wahrscheinlich ineffektiv.</p>
<p>Was ist sowieso generell schneller? Sortieren und dann den ersten Eintrag abgreifen oder minimum Algorithmen?</p>
<p>Danke für Eure Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503277</guid><dc:creator><![CDATA[Sewing]]></dc:creator><pubDate>Sun, 24 Jul 2016 13:05:48 GMT</pubDate></item><item><title><![CDATA[Reply to Min Algorithmus über vector von vectoren on Sun, 24 Jul 2016 13:17:47 GMT]]></title><description><![CDATA[<blockquote>
<p>STL Algorithmen funktionieren ja nur auf einem einzelnen Containter.</p>
</blockquote>
<p>Auf Iteratoren um genau zu sein. Und was diese Container als Template-Parameter haben, ist Wurst. Musst du höchstens die Variante der Funktion nehmen, bei der Du eine Funktion mit übergeben musst.</p>
<p>Suchst du sowas:</p>
<pre><code class="language-cpp">auto it = std::min_element(vec.begin(), vec.end(), [](const std::vector&lt;int&gt;&amp; v, const std::vector&lt;int&gt;&amp; v2){
        return std::accumulate(v.begin(), v.end(), 0) &lt; std::accumulate(v2.begin(), v2.end(), 0);
    });
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2503281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503281</guid><dc:creator><![CDATA[schwing]]></dc:creator><pubDate>Sun, 24 Jul 2016 13:17:47 GMT</pubDate></item><item><title><![CDATA[Reply to Min Algorithmus über vector von vectoren on Sun, 24 Jul 2016 13:19:40 GMT]]></title><description><![CDATA[<p>Sewing schrieb:</p>
<blockquote>
<p>Was ist sowieso generell schneller? Sortieren und dann den ersten Eintrag abgreifen oder minimum Algorithmen?</p>
</blockquote>
<p>Denk mal darüber nach, wie man ein Minimum aus einer Menge findet. Wie viele Operationen sind dazu nötig?</p>
<p>Wenn die Spaltenlänge fest ist, wieso dann vector von vector? Das ist höchst ineffizient. Speicher doch einfach alles in einem Vector. Und wenn du schon dabei bist, und wenn du öfters Operationen machst, die pro Spalte anstatt pro Zeile berechnet werden, dann speicher sie auch gleich im row-major Format. Dann wird die Lösung deiner Frage trivial.</p>
<p>Falls du tatsächlich einen guten Grund hattest, deine Daten im column-major Format zu speichern, dann musst du hier eben jeweils in 14-er Schritten durch das Array gehen. Dazu kann man sich auch schick einen Zeileniterator schreiben, der diesen Vorgang abstrahiert. Dann kann man auch wieder die STL-Minimumssuche einsetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503283</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 24 Jul 2016 13:19:40 GMT</pubDate></item><item><title><![CDATA[Reply to Min Algorithmus über vector von vectoren on Sun, 24 Jul 2016 13:25:36 GMT]]></title><description><![CDATA[<p>Danke Euch beiden. Beinahe sowas, was ich aber genau suche is sowas:</p>
<p>---vec1---<br />
---vec2---<br />
---vec3---<br />
...<br />
---vecN---</p>
<p>Die Zeilen der Matrix sind also transponierte Spaltenvektoren.</p>
<p>Jetzt suche ich aber das Minimum aus allen ersten Einträgen von vec1 bis vecN, das minumum als allen zweiten Einträgen von vec1 bis vecN usw. Das heisst, pro Spalte das Minimum und da hilft mir die Lambda von dir ja nicht weiter oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503287</guid><dc:creator><![CDATA[Sewing]]></dc:creator><pubDate>Sun, 24 Jul 2016 13:25:36 GMT</pubDate></item><item><title><![CDATA[Reply to Min Algorithmus über vector von vectoren on Mon, 25 Jul 2016 07:54:28 GMT]]></title><description><![CDATA[<p>Falls du es noch nicht selbst gelöst hast:</p>
<pre><code>#include &lt;algorithm&gt;
#include &lt;iostream&gt;
#include &lt;vector&gt;

using namespace std;

int main() {
    vector&lt;vector&lt;double&gt;&gt; v = {
        { 11,12,5,14 },
        { 10,11,12,13 },
        { 17,23,42,3 }
    };

    for (size_t col = 0; col &lt; 4; ++col) {
        cout &lt;&lt; &quot;Col &quot; &lt;&lt; col &lt;&lt; &quot; hat Minimum: &quot;
             &lt;&lt; min_element(v.begin(), v.end(),
                            [col](const vector&lt;double&gt; &amp;a, const vector&lt;double&gt; &amp;b) { return a[col] &lt; b[col]; })
                    -&gt;at(col)
             &lt;&lt; '\n';
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2503397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503397</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Mon, 25 Jul 2016 07:54:28 GMT</pubDate></item></channel></rss>