<?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[Frage zur Wertinitialisierung bei Vektoren]]></title><description><![CDATA[<p>Hi,</p>
<p>im dem Buch hier</p>
<p><a href="https://duckduckgo.com/?q=isbn+382732274X&amp;cppnetbooks" rel="nofollow">C++ Primer | ISBN: 382732274X</a></p>
<p>wird auf Seite 123 zum Thema folgendes geschrieben, was ich leider nicht ganz verstehe:</p>
<p>(Zitat gekürzt, aber sinngemäß)</p>
<p>C++ Primer schrieb:</p>
<blockquote>
<p>Wenn kein Initialisierer für ein Element angegeben wird, legt die Bibliothek einen mit einem Wert initialisierten Elementinitialisierer an, der die einzelnen Elemente im Container initialisiert. Sein Wert hängt vom Typ der gespeicherten Elemente ab.<br />
Wenn der Vektor Elemente eines integrierten Typs enthält, beispielsweise <code>int</code> , legt die Bibliothek einen Initialisierer mit dem Wert 0 an:</p>
<pre><code class="language-cpp">vector&lt;string&gt; fvec(10);    // 10 mit 0 initialisierte Elemente
</code></pre>
<p>Wenn er Werte eines Klassentyps wie zum Beispiel <code>string</code> enthält, der eigene Konstruktoren definiert, verwendet die Bibliothek den Standardkonstruktor des Werttyps zum Anlegen des Elementinitialisierers:</p>
<pre><code class="language-cpp">vector&lt;string&gt; svec(10);    // 10 Elemente, alle leere Strings
</code></pre>
</blockquote>
<p>Das verstehe ich, wie gesagt, nicht so richtig.<br />
Woher soll die Bibliothek denn alleine vom Variablennamen (fvec, svec) wissen, welchen Typ von Vektor ich nun angelegt habe?</p>
<p>Grüße, NewProggie</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/171437/frage-zur-wertinitialisierung-bei-vektoren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 11:59:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/171437.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Jan 2007 13:12:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zur Wertinitialisierung bei Vektoren on Thu, 25 Jan 2007 13:12:43 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>im dem Buch hier</p>
<p><a href="https://duckduckgo.com/?q=isbn+382732274X&amp;cppnetbooks" rel="nofollow">C++ Primer | ISBN: 382732274X</a></p>
<p>wird auf Seite 123 zum Thema folgendes geschrieben, was ich leider nicht ganz verstehe:</p>
<p>(Zitat gekürzt, aber sinngemäß)</p>
<p>C++ Primer schrieb:</p>
<blockquote>
<p>Wenn kein Initialisierer für ein Element angegeben wird, legt die Bibliothek einen mit einem Wert initialisierten Elementinitialisierer an, der die einzelnen Elemente im Container initialisiert. Sein Wert hängt vom Typ der gespeicherten Elemente ab.<br />
Wenn der Vektor Elemente eines integrierten Typs enthält, beispielsweise <code>int</code> , legt die Bibliothek einen Initialisierer mit dem Wert 0 an:</p>
<pre><code class="language-cpp">vector&lt;string&gt; fvec(10);    // 10 mit 0 initialisierte Elemente
</code></pre>
<p>Wenn er Werte eines Klassentyps wie zum Beispiel <code>string</code> enthält, der eigene Konstruktoren definiert, verwendet die Bibliothek den Standardkonstruktor des Werttyps zum Anlegen des Elementinitialisierers:</p>
<pre><code class="language-cpp">vector&lt;string&gt; svec(10);    // 10 Elemente, alle leere Strings
</code></pre>
</blockquote>
<p>Das verstehe ich, wie gesagt, nicht so richtig.<br />
Woher soll die Bibliothek denn alleine vom Variablennamen (fvec, svec) wissen, welchen Typ von Vektor ich nun angelegt habe?</p>
<p>Grüße, NewProggie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216836</guid><dc:creator><![CDATA[W0lf]]></dc:creator><pubDate>Thu, 25 Jan 2007 13:12:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Wertinitialisierung bei Vektoren on Thu, 25 Jan 2007 13:17:43 GMT]]></title><description><![CDATA[<p>Da ist anscheinend ein Fehler (entweder im Buch oder in deiner Abschrift) - das erste müsste, wenn man dem Text glauben soll, &quot;vector&lt;int&gt; fvec(10);&quot; heißen.</p>
<p>Und der Compiler erkennt nicht am Namen der Variablen, wie er sie initialisieren soll, sondern am Typ - genauer gesagt an den Template-Parametern, die du übergibst. Der erste Vector enthält int-Werte, deshalb wird er auch mit dem Dafaultwert für int's (0) gefüllt, der zweite Vector enthält std::string's, deshalb wird der Default-Ctor von string verwendet, um die Elemente zu initialisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216838</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 25 Jan 2007 13:17:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Wertinitialisierung bei Vektoren on Thu, 25 Jan 2007 13:31:04 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Da ist anscheinend ein Fehler (entweder im Buch oder in deiner Abschrift) - das erste müsste, wenn man dem Text glauben soll, &quot;vector&lt;int&gt; fvec(10);&quot; heißen.</p>
<p>Und der Compiler erkennt nicht am Namen der Variablen, wie er sie initialisieren soll, sondern am Typ - genauer gesagt an den Template-Parametern, die du übergibst. Der erste Vector enthält int-Werte, deshalb wird er auch mit dem Dafaultwert für int's (0) gefüllt, der zweite Vector enthält std::string's, deshalb wird der Default-Ctor von string verwendet, um die Elemente zu initialisieren.</p>
</blockquote>
<p>Ich danke dir <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="🙂"
    /><br />
Ich hab nämlich schon vermutet, dass hier ein Druckfehler im Buch ist, war mir aber nicht so sicher, weil man (ich) ja immer erstmal von der Unfehlbarkeit eines Lektors ausgeht <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>
<p>Grüße, NewProggie</p>
<p>P.S: Ich habe den Abschnitt richtig abgeschrieben und nochmal überprüft, deswegen gehe ich hier einfach von einem Druckfehler aus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216848</guid><dc:creator><![CDATA[W0lf]]></dc:creator><pubDate>Thu, 25 Jan 2007 13:31:04 GMT</pubDate></item></channel></rss>