<?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[Unterschied std::vector&amp;lt;int&amp;gt; und int*]]></title><description><![CDATA[<p>Hallo <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>
<p>Die Überschrift ist nur ein Beispiel.<br />
Generell geht es mir um den Unterschied (egal welcher Wertetyp).<br />
Ist es besser zB.<br />
<em>int ** array</em><br />
zu verwenden als<br />
<em>std::vector&lt;std::vector&lt;int&gt;&gt; array</em><br />
zu verwenden? Worin bestehen da die Unterschiede? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Da ich nicht genau weiß, wie ich dieses Problem benennen soll, konnte ich auch nicht intensiv suchen... int ** array ist ein Pointer, oder?</p>
<p>Liebe Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/302092/unterschied-std-vector-lt-int-gt-und-int</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 14:06:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302092.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Apr 2012 10:19:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Wed, 11 Apr 2012 10:19:07 GMT]]></title><description><![CDATA[<p>Hallo <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>
<p>Die Überschrift ist nur ein Beispiel.<br />
Generell geht es mir um den Unterschied (egal welcher Wertetyp).<br />
Ist es besser zB.<br />
<em>int ** array</em><br />
zu verwenden als<br />
<em>std::vector&lt;std::vector&lt;int&gt;&gt; array</em><br />
zu verwenden? Worin bestehen da die Unterschiede? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Da ich nicht genau weiß, wie ich dieses Problem benennen soll, konnte ich auch nicht intensiv suchen... int ** array ist ein Pointer, oder?</p>
<p>Liebe Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200697</guid><dc:creator><![CDATA[Norchen]]></dc:creator><pubDate>Wed, 11 Apr 2012 10:19:07 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Wed, 11 Apr 2012 10:29:25 GMT]]></title><description><![CDATA[<p>int** und vector&lt;vector&lt;int&gt;&gt; modellieren beide das gleiche Konzept, eine Art Liste von Listen (das ist kein 2D-Array!). Der Unterschied ist, dass die vector-Variante dir weitgehend entgegenkommt, so dass man kaum noch etwas falsch machen kann, bei der int**-Variante muss man auf ungeheuer viel aufpassen, hat aber keinerlei nennenswerte Vorteile. Eigentlich ist die einzig vernünftige Methode mit int** sauber umzugehen, dies in einer Klasse zu wrappen. Und dann hätte man vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200701</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 11 Apr 2012 10:29:25 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Wed, 11 Apr 2012 10:58:24 GMT]]></title><description><![CDATA[<p>int **ptr ist ein Zeiger auf einen Zeiger zeigt der auf einen int zeigt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Du meinst das aber bestimmt im Zusammenhang mit mehrdimensionalen Arrays.</p>
<p>Ein std::vector dagegen ist eine Kapselung eines Arrays, du kannst auf das Array nur über bestimmte, im vector definierten Methoden zugreifen. std::vector gaukelt einem die Eigenschaften eines dynamischen (in der größe änderbaren) Arrays vor.<br />
std::vector&lt; std::vector&lt;int&gt; &gt; ist ein vector der vectoren von int enthält, also prinzipiell ein dynamisches zweidimensionales Array.</p>
<p>//Edit: habe die Fehler entfernt um den TO nicht zu verwirren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200703</guid><dc:creator><![CDATA[RedPuma]]></dc:creator><pubDate>Wed, 11 Apr 2012 10:58:24 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Wed, 11 Apr 2012 10:33:02 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>int** und vector&lt;vector&lt;int&gt;&gt; modellieren beide das gleiche Konzept...</p>
</blockquote>
<p>Ich weiß zwar, was Du im Kontext meinst, aber die Aussage ist in sofern gewagt, als dass der TO anscheinend noch gundlegende Verständnisprobleme bei Pointern hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200704</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 11 Apr 2012 10:33:02 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Wed, 11 Apr 2012 10:45:19 GMT]]></title><description><![CDATA[<p>RedPuma schrieb:</p>
<blockquote>
<p>[...]Hier wäre int asd[4][4]; die deklaration für ein 4x4 array. Hierbei ist asd vom Typ int**, asd[2] ist vom Typ int* und asd[2][2] vom Typ int.</p>
</blockquote>
<p>Leider nicht.<br />
Bei einem <code>int asd[4][4]</code> ist asd vom Typ <code>int[4][4]</code> und nicht vom Typ <code>int**</code> . Das ist nicht einmal konverierbar. Und der Typ von <code>asd[0]</code> ist ein <code>int[4]</code> und kein <code>int*</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200708</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 11 Apr 2012 10:45:19 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Wed, 11 Apr 2012 10:36:50 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>int** und vector&lt;vector&lt;int&gt;&gt; modellieren beide das gleiche Konzept...</p>
</blockquote>
<p>Ich weiß zwar, was Du im Kontext meinst, aber die Aussage ist in sofern gewagt, als dass der TO anscheinend noch gundlegende Verständnisprobleme bei Pointern hat.</p>
</blockquote>
<p>Ich meine das, was man damit macht, ist in der Regel das gleiche, nämlich eine dynamische Liste von dynamischen Listen verwalten. Außer eventuell die exotische Anwendung, dass ein int** eventuell auch ein C-Style-Call-by-reference eines int* sein könnte, was bei einem vector&lt;vector&gt; klar ausgeschlossen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200709</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 11 Apr 2012 10:36:50 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Wed, 11 Apr 2012 10:38:34 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>int** und vector&lt;vector&lt;int&gt;&gt; modellieren beide das gleiche Konzept, eine Art Liste von Listen (das ist kein 2D-Array!). Der Unterschied ist, dass die vector-Variante dir weitgehend entgegenkommt, so dass man kaum noch etwas falsch machen kann, bei der int**-Variante muss man auf ungeheuer viel aufpassen, hat aber keinerlei nennenswerte Vorteile. Eigentlich ist die einzig vernünftige Methode mit int** sauber umzugehen, dies in einer Klasse zu wrappen. Und dann hätte man vector.</p>
</blockquote>
<p>Bei vector ist der Unterschied dass der Speicherplatz für die eigentlichen Daten immer auf dem Heap erstellt wird. Die Menge an reserviertem Speicher bestimmt vector größtenteils selbst, außer man sagt ihm explizit über den Constructor etwas anderes.<br />
Wenn ich z.B. eine Matrix-Klasse schreiben würde, würde ich immer <em>float val[4][4];</em> oder <em>float val[4</em>4];* als Member benutzen und nie einen vector, ansonsten würde sobald ich eine Matrix auf dem Stack erstelle der Heap beansprucht, was zu extremen Leistungseinbrüchen führen kann. Kommt halt immer auf den Verwendungszweck an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200711</guid><dc:creator><![CDATA[RedPuma]]></dc:creator><pubDate>Wed, 11 Apr 2012 10:38:34 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Wed, 11 Apr 2012 10:55:16 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>RedPuma schrieb:</p>
<blockquote>
<p>[...]Hier wäre int asd[4][4]; die deklaration für ein 4x4 array. Hierbei ist asd vom Typ int**, asd[2] ist vom Typ int* und asd[2][2] vom Typ int.</p>
</blockquote>
<p>Leider nicht.<br />
Bei einem <code>int asd[4][4]</code> ist asd vom Typ <code>int[4][4]</code> und nicht vom Typ <code>int**</code> . Und der Typ von <code>asd[0]</code> ist ein <code>int[4]</code> und kein <code>int*</code> .</p>
</blockquote>
<p>//EDIT:<br />
Du hattest tatsächlich recht, entschuldige.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200714</guid><dc:creator><![CDATA[RedPuma]]></dc:creator><pubDate>Wed, 11 Apr 2012 10:55:16 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Wed, 11 Apr 2012 10:47:08 GMT]]></title><description><![CDATA[<p>RedPuma schrieb:</p>
<blockquote>
<p>Haarspalterei. Theoretisch ja. In der Praxis gibts da aber keinen Unterschied außer man betrachtet Funktionsparameter, wobei die Zeigertypen als Parameter immer funktionieren.</p>
</blockquote>
<p>Der Unterschied ist gigantisch und das Ignorieren das Unterschieds immer wieder eine Quelle für tolle Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200718</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 11 Apr 2012 10:47:08 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Wed, 11 Apr 2012 10:47:48 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18915">@RedPuma</a>: was hat das mit dem Thema zu tun? Ja, vector&lt;vector&gt; will man fast nie, genausowenig wie int**. Aber dein Vorschlag ist keine Alternative, denn er kann nicht das gleiche leisten.</p>
<p>Das int** kein Zeiger auf ein Array ist, ist keine Haarspalterei, sondern ein ganz entscheidender Unterschied, den man, wenn man mit Arrays rumspielt, unbedingt wissen <strong>muss</strong>. Das ist an dir anscheinend vorbeigegangen und jetzt willst du es auch noch an empfängliche Anfänger weitergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200719</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 11 Apr 2012 10:47:48 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Wed, 11 Apr 2012 11:01:17 GMT]]></title><description><![CDATA[<p>Okay danke ihr beiden, ich habs mir grad nochmal überlegt und ihr habt natürlich recht, Entschuldigung an den TO.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200730</guid><dc:creator><![CDATA[RedPuma]]></dc:creator><pubDate>Wed, 11 Apr 2012 11:01:17 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied std::vector&amp;lt;int&amp;gt; und int* on Thu, 12 Apr 2012 09:01:00 GMT]]></title><description><![CDATA[<p>Huch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Einiges konnte mir schon eine kleine Einleuchtung bringen.<br />
Klar, es liegt an den Pointer-Verständigungsproblem... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Das will mir nicht in den Kopf; zumindest im Zusammenhang mit den Arrays. Es wird zwar langsam klarer, da es in dem mir vorliegenden Code nur so wimmelt von Pointern, aber ganz durchblicken tue ich nicht.</p>
<p>Ich muss dazu sagen, ich bin keine Programmiererin und habe mehr schlecht als recht Erfahrung mit c++. Aber wenn die Arbeit was verlangt, dann muss das eben in hinreichend schneller Zeit geschehen...<br />
Der Originalverfasser des Quellcodes ist net da... was will man da machen xD</p>
<p>Trotzdem Danke für eure Mühen. Ich wussel mich da mal durch und gucke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2201057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2201057</guid><dc:creator><![CDATA[Norchen]]></dc:creator><pubDate>Thu, 12 Apr 2012 09:01:00 GMT</pubDate></item></channel></rss>