<?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[initalizer_list und vector Initialisierung]]></title><description><![CDATA[<p>Hallöchen nochmal,<br />
Hätte da noch eine Frage zu initializer_list.</p>
<p>Wenn ich folgende Klasse habe:</p>
<pre><code>class my_class{
  public:
    my_class(const std::initializer_list&lt;my_type &amp;&gt; &amp;il)
    {
      ...
    }

  private:
    std::vector&lt;my_type*&gt; data;
};
</code></pre>
<p>Wie bekomme ich jetzt die Zeiger in meinen Vector? Direkt geht ja nicht, da im Vektor Zeiger sind und keine Referenzen.<br />
Wenn ich eine Shleife benutze, also:</p>
<pre><code>for(auto datum : il)
    vector.push_back(&amp;datum);
</code></pre>
<p>Meckert er, dass er begin() und end() der Initialisierungsliste nicht findet.</p>
<p>Danke,<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/297409/initalizer_list-und-vector-initialisierung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 11:02:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/297409.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Dec 2011 18:50:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Tue, 27 Dec 2011 18:50:51 GMT]]></title><description><![CDATA[<p>Hallöchen nochmal,<br />
Hätte da noch eine Frage zu initializer_list.</p>
<p>Wenn ich folgende Klasse habe:</p>
<pre><code>class my_class{
  public:
    my_class(const std::initializer_list&lt;my_type &amp;&gt; &amp;il)
    {
      ...
    }

  private:
    std::vector&lt;my_type*&gt; data;
};
</code></pre>
<p>Wie bekomme ich jetzt die Zeiger in meinen Vector? Direkt geht ja nicht, da im Vektor Zeiger sind und keine Referenzen.<br />
Wenn ich eine Shleife benutze, also:</p>
<pre><code>for(auto datum : il)
    vector.push_back(&amp;datum);
</code></pre>
<p>Meckert er, dass er begin() und end() der Initialisierungsliste nicht findet.</p>
<p>Danke,<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161346</guid><dc:creator><![CDATA[Martin Kalbfuß]]></dc:creator><pubDate>Tue, 27 Dec 2011 18:50:51 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Wed, 28 Dec 2011 02:17:53 GMT]]></title><description><![CDATA[<p>Es muss natürlich data.push_back lauten, und nicht vector.push_back. Daran liegt es aber definitiv nicht. Es scheint etwas mit der Referenz in der Initialisierungsliste zu tun zu haben. Die Schleife hat damit ein Problem. Aber welches?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161445</guid><dc:creator><![CDATA[Martin Kalbfuß]]></dc:creator><pubDate>Wed, 28 Dec 2011 02:17:53 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Wed, 28 Dec 2011 02:38:43 GMT]]></title><description><![CDATA[<p>initializer_list ist auch nur ein Container.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161446</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 28 Dec 2011 02:38:43 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Wed, 28 Dec 2011 08:03:00 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>initializer_list ist auch nur ein Container.</p>
</blockquote>
<p>Das war hilfreich</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26836">@Topic</a> könntest du uns auch mal die komplette Fehlermeldung zeigen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161458</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 28 Dec 2011 08:03:00 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Wed, 28 Dec 2011 08:29:40 GMT]]></title><description><![CDATA[<p>Martin Kalbfuß schrieb:</p>
<blockquote>
<p>Hätte da noch eine Frage zu initializer_list.</p>
<pre><code>class my_class{
  public:
    my_class(const std::initializer_list&lt;my_type &amp;&gt; &amp;il)
    {
      ...
    }

  private:
    std::vector&lt;my_type*&gt; data;
};
</code></pre>
<p>Wie bekomme ich jetzt die Zeiger in meinen Vector?</p>
</blockquote>
<p>Sorry, aber das ist einfach Unfug. Viel zu viele &amp; Symbole.</p>
<p>Die naheliegende Lösung:</p>
<pre><code class="language-cpp">class my_class{
  public:
    my_class(std::initializer_list&lt;my_type*&gt; il)
    : data(il)
    {
      ...
    }

  private:
    std::vector&lt;my_type*&gt; data;
};
</code></pre>
<p>'ne &quot;initializer list&quot; sind besteht eh nur aus 2 Zeigern. Da kann man sich die Überpage per ref-auf-const sparen. So machen's auch die Standardcontainer. Und Referenzen kann eine IL sowieso nicht halten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161461</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 28 Dec 2011 08:29:40 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Wed, 28 Dec 2011 15:58:01 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Das war hilfreich</p>
</blockquote>
<p>--&gt;</p>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>initializer_list ist auch nur ein Container.</p>
</blockquote>
<p>--&gt;</p>
<p>krümelkacker schrieb:</p>
<blockquote>
<p>Und Referenzen kann eine IL sowieso nicht halten.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2161553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161553</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 28 Dec 2011 15:58:01 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Wed, 28 Dec 2011 22:54:39 GMT]]></title><description><![CDATA[<p>krümelkackers Kommentar war auch Hilfreich. Leider kam er zeitlich nach dir, sodass du dich nicht darauf berufen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161657</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 28 Dec 2011 22:54:39 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Wed, 28 Dec 2011 23:05:50 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Leider kam er zeitlich nach dir, sodass du dich nicht darauf berufen kannst.</p>
</blockquote>
<p>Tu ich nich. Stell dich nicht dumm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161659</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 28 Dec 2011 23:05:50 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Wed, 28 Dec 2011 23:30:12 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>otze schrieb:</p>
<blockquote>
<p>Leider kam er zeitlich nach dir, sodass du dich nicht darauf berufen kannst.</p>
</blockquote>
<p>Tu ich nich. Stell dich nicht dumm.</p>
</blockquote>
<p>Verhältst du dich absichtlich immer so scheisse? Mit deinem Kommentar konnte niemand etwas anfangen. Punkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161663</guid><dc:creator><![CDATA[zu viel]]></dc:creator><pubDate>Wed, 28 Dec 2011 23:30:12 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Thu, 29 Dec 2011 15:53:50 GMT]]></title><description><![CDATA[<p>Schade, dass man keine Referenzen übergeben kann. Gibt's da keine Tricks? Pointer als Übergabetyp sind nicht gerade Stilvoll, auch wenn's technisch keinen Unterschied macht.</p>
<p>Danke,<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161851</guid><dc:creator><![CDATA[Martin Kalbfuß]]></dc:creator><pubDate>Thu, 29 Dec 2011 15:53:50 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Thu, 29 Dec 2011 16:01:09 GMT]]></title><description><![CDATA[<p>Martin Kalbfuß schrieb:</p>
<blockquote>
<p>Pointer als Übergabetyp sind nicht gerade Stilvoll</p>
</blockquote>
<p>Warum sind Pointer weniger stilvoll als Referenzen? Wegen des Adressoperators?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161859</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 29 Dec 2011 16:01:09 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Thu, 29 Dec 2011 16:19:21 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Martin Kalbfuß schrieb:</p>
<blockquote>
<p>Pointer als Übergabetyp sind nicht gerade Stilvoll</p>
</blockquote>
<p>Warum sind Pointer weniger stilvoll als Referenzen? Wegen des Adressoperators?</p>
</blockquote>
<p>Naja, wenn du jedesmal auf Gültigkeit prüfen musst (wenn du dereferenzierst) ... :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161866</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 29 Dec 2011 16:19:21 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Thu, 29 Dec 2011 16:55:40 GMT]]></title><description><![CDATA[<p>std::ref</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161889</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 29 Dec 2011 16:55:40 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Thu, 29 Dec 2011 17:39:31 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Naja, wenn du jedesmal auf Gültigkeit prüfen musst (wenn du dereferenzierst)</p>
</blockquote>
<p>Wer sowas macht, hat ganz andere Probleme...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161905</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 29 Dec 2011 17:39:31 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Thu, 29 Dec 2011 19:39:43 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Hacker schrieb:</p>
<blockquote>
<p>Naja, wenn du jedesmal auf Gültigkeit prüfen musst (wenn du dereferenzierst)</p>
</blockquote>
<p>Wer sowas macht, hat ganz andere Probleme...</p>
</blockquote>
<p>Was für Probleme denn?</p>
<p>Wenn es unbedingt Referenzen sein müssen, kann man bestimmt mit variadic templates einen schönen Konstruktor basteln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161958</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Thu, 29 Dec 2011 19:39:43 GMT</pubDate></item><item><title><![CDATA[Reply to initalizer_list und vector Initialisierung on Sat, 31 Dec 2011 00:29:32 GMT]]></title><description><![CDATA[<p>TyRoXx schrieb:</p>
<blockquote>
<p>Was für Probleme denn?</p>
</blockquote>
<p>Wer Zeiger jeweils vor ihrer Verwendung auf <code>NULL</code> prüft, ist sich über seine Programmsemantik nicht im Klaren.</p>
<p>Gewisse Zeiger haben einfach gültig zu sein, da ist <code>NULL</code> schlicht und einfach ein Logikfehler. Ein <code>if (ptr)</code> führt nur dazu, dass dieser Logikfehler verschleiert und weitergetragen wird, ausserdem macht es den Code unnötig hässlich. Wenn man nichts schreibt, oder ohne vernünftige Debugger meinetwegen <code>assert(ptr)</code> , wird der Fehler hingegen sofort entdeckt.</p>
<p>Dran denken, ich hab &quot;gewisse&quot; geschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2162299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2162299</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 31 Dec 2011 00:29:32 GMT</pubDate></item></channel></rss>