<?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[Matrix &amp;amp; Iterator]]></title><description><![CDATA[<p>Hallo Leutz,</p>
<p>ich hab viel mit Matrizen zu tun.</p>
<pre><code class="language-cpp">vector&lt;double&gt; value;
	vector&lt;vector&lt;double&gt;&gt; matrix;

	for(int i = 0; i &lt; 10; ++i)
		value.push_back(i);
	for(int i = 0; i &lt; 5; ++i)
		matrix.push_back(value);
</code></pre>
<p>Um auf die einzelnen Elementen zuzugreifen habe ich stinknormale for-Schleifen benutzt. Wie z.B.</p>
<pre><code class="language-cpp">for(int row = 0; row &lt; matrix.size(); ++row){
		for(int column = 0; column &lt; matrix.at(row).size(); ++column)
			cout &lt;&lt; matrix.at(row).at(column) &lt;&lt; '\t';
		cout &lt;&lt; endl;
	}
</code></pre>
<p>Letztens habe ich wat über Iteratoren gelesen und wollte einfach ma los programmieren.</p>
<p>Resultat:</p>
<pre><code class="language-cpp">vector&lt;vector&lt;double&gt;&gt;::iterator it_row;
	vector&lt;double&gt;::iterator it_column;

	for(it_row = matrix.begin(); it_row &lt; matrix.end(); ++it_row)
		for(it_column = matrix.at(it_row).begin(); it_column matrix.at(it_row).end(); ++it_column)
			cout &lt;&lt; *it_column &lt;&lt; '\t';
	cout &lt;&lt; endl;
</code></pre>
<p>Naja, das funktioniert natürlich nicht! Ehrlich gesacht, kam ich schon ab der zweiten for-Schleife ins schwitzen.<br />
Könnt ihr mir da Tipps geben und würdet ihr mir empfehlen weiter mir Iteratoren zu arbeiten? Wenn ja, warum? Bzw wo liegt da der Vorteil.</p>
<p>tausend Dank im voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258221/matrix-amp-iterator</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 10:35:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258221.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Jan 2010 23:10:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Matrix &amp;amp; Iterator on Thu, 07 Jan 2010 23:10:00 GMT]]></title><description><![CDATA[<p>Hallo Leutz,</p>
<p>ich hab viel mit Matrizen zu tun.</p>
<pre><code class="language-cpp">vector&lt;double&gt; value;
	vector&lt;vector&lt;double&gt;&gt; matrix;

	for(int i = 0; i &lt; 10; ++i)
		value.push_back(i);
	for(int i = 0; i &lt; 5; ++i)
		matrix.push_back(value);
</code></pre>
<p>Um auf die einzelnen Elementen zuzugreifen habe ich stinknormale for-Schleifen benutzt. Wie z.B.</p>
<pre><code class="language-cpp">for(int row = 0; row &lt; matrix.size(); ++row){
		for(int column = 0; column &lt; matrix.at(row).size(); ++column)
			cout &lt;&lt; matrix.at(row).at(column) &lt;&lt; '\t';
		cout &lt;&lt; endl;
	}
</code></pre>
<p>Letztens habe ich wat über Iteratoren gelesen und wollte einfach ma los programmieren.</p>
<p>Resultat:</p>
<pre><code class="language-cpp">vector&lt;vector&lt;double&gt;&gt;::iterator it_row;
	vector&lt;double&gt;::iterator it_column;

	for(it_row = matrix.begin(); it_row &lt; matrix.end(); ++it_row)
		for(it_column = matrix.at(it_row).begin(); it_column matrix.at(it_row).end(); ++it_column)
			cout &lt;&lt; *it_column &lt;&lt; '\t';
	cout &lt;&lt; endl;
</code></pre>
<p>Naja, das funktioniert natürlich nicht! Ehrlich gesacht, kam ich schon ab der zweiten for-Schleife ins schwitzen.<br />
Könnt ihr mir da Tipps geben und würdet ihr mir empfehlen weiter mir Iteratoren zu arbeiten? Wenn ja, warum? Bzw wo liegt da der Vorteil.</p>
<p>tausend Dank im voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834754</guid><dc:creator><![CDATA[schickano]]></dc:creator><pubDate>Thu, 07 Jan 2010 23:10:00 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix &amp;amp; Iterator on Thu, 07 Jan 2010 23:15:38 GMT]]></title><description><![CDATA[<p>Wenn du mit den Iteratoren nicht klar kommst, dann benutz halt Indexzugriffe. Kann so oder so noch von Vorteil sein, weil man ja oft auch den Index braucht.</p>
<p>Aber im übrigen würde ich sowieso nicht das benutzen, um eine Matrix darzustellen, sondern eher eine Library dazu benutzen. Vor allem mit den richtigen Algorithmen kannst du da viel Zeit sparen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834757</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 07 Jan 2010 23:15:38 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix &amp;amp; Iterator on Fri, 08 Jan 2010 01:32:20 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23376">@schickano</a>:</p>
<p>Warum erhoehst du den Index vor betreten der for-Schleife? Was geht ueberhaupt schief?</p>
<p>Ich schliesse mich drakon an, es gibt bereits vorgefertigte Bibliotheken fuer lineare Algebra. Du kannst dir aber natuerlich auch selbst eine Matrixklasse schreiben, allerdings wuerde ich zwecks Performance eher zu Arrays tendieren. Kommt natuerlich immer darauf an, was du bezweckst.<br />
@Indexzugriff: Da wuerde ich noch eher die .at() Methode empfehlen, die wirft immerhin eine exception, wenn man ueber den Vector hinausliest.</p>
<p>Edit: Ich sehe grade, dass du per .at() in der zweiten for-Schleife auf das erste Element zugreifst. Du kannst doch einfach den Iterator der ersten for-Schleife nehmen und per -&gt;at() auf sein erstes Element zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834785</guid><dc:creator><![CDATA[Corsair*01]]></dc:creator><pubDate>Fri, 08 Jan 2010 01:32:20 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix &amp;amp; Iterator on Fri, 08 Jan 2010 10:43:28 GMT]]></title><description><![CDATA[<p>Corsair@01: der Index wird doch gar nicht vorher erhöht!?</p>
<p>Und hier die richtige Version:</p>
<pre><code class="language-cpp">vector&lt;vector&lt;double&gt;&gt;::iterator it_row;
vector&lt;double&gt;::iterator it_column;

for(it_row = matrix.begin(); it_row &lt; matrix.end(); ++it_row)
    for(it_column = it_row-&gt;begin(); it_column &lt; it_row-&gt;end(); ++it_column)
        cout &lt;&lt; *it_column &lt;&lt; '\t';
cout &lt;&lt; endl;
</code></pre>
<p>Aber ich würde auch zu einer vorgefertigten Matrizen-Klasse raten, anstatt selber damit herumzuhantieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834889</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Fri, 08 Jan 2010 10:43:28 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix &amp;amp; Iterator on Fri, 08 Jan 2010 11:43:59 GMT]]></title><description><![CDATA[<p>Abstrahiere von vector&lt;vector&lt;double&gt; &gt; und baue eine eigene Matrixklasse. Implementiere double&amp; operator()(int i, int j) und nutze ein Matrixobjekt aehnlich der mathematischen Notation z.B. m(1,3).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834920</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Fri, 08 Jan 2010 11:43:59 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix &amp;amp; Iterator on Fri, 08 Jan 2010 21:27:47 GMT]]></title><description><![CDATA[<p>Ok ich sehe die Tendenz neigt zu vorgefertigten Libraries,<br />
habt Ihr einige Favoriten, welche würdet Ihr mir empfehlen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835335</guid><dc:creator><![CDATA[schickano]]></dc:creator><pubDate>Fri, 08 Jan 2010 21:27:47 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix &amp;amp; Iterator on Fri, 08 Jan 2010 21:52:55 GMT]]></title><description><![CDATA[<p><a href="http://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=9505" rel="nofollow">http://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=9505</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835348</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 08 Jan 2010 21:52:55 GMT</pubDate></item></channel></rss>