<?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[push_back() vereinfacht]]></title><description><![CDATA[<p>Guten Tag,<br />
da ich aus Lust und Laune eben zu einem Programm eine selbst geschriebene Verkettete Liste, die Vector ähnelt, geschrieben hab, ist mir wieder was eingefallen zu der Methode push_back. Als ich letztens mal wieder durch das Forum gegeistert bin, meine ich, habe ich einen Post von volkard, draverere oder einem anderen der Superkanidaten gesehen, indem derjenige die Methode push_back() nur mit einer Zeile gelöst hat. Mein push_back sieht jetzt so aus:</p>
<pre><code class="language-cpp">void push_back(int value)
{
    _knot *node = new _knot;
    node-&gt;data = value;
    node-&gt;next = anchor;
    anchor = node;
}
</code></pre>
<p>So sieht man sie oft, doch die andere Lösung gefällt mir besser und war auch wirklich nur eine Zeile lang. Würde mich freuen wenn ihr mir diese schreiben könntet <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>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/241611/push_back-vereinfacht</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 08:14:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/241611.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 May 2009 10:46:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to push_back() vereinfacht on Sat, 23 May 2009 10:46:59 GMT]]></title><description><![CDATA[<p>Guten Tag,<br />
da ich aus Lust und Laune eben zu einem Programm eine selbst geschriebene Verkettete Liste, die Vector ähnelt, geschrieben hab, ist mir wieder was eingefallen zu der Methode push_back. Als ich letztens mal wieder durch das Forum gegeistert bin, meine ich, habe ich einen Post von volkard, draverere oder einem anderen der Superkanidaten gesehen, indem derjenige die Methode push_back() nur mit einer Zeile gelöst hat. Mein push_back sieht jetzt so aus:</p>
<pre><code class="language-cpp">void push_back(int value)
{
    _knot *node = new _knot;
    node-&gt;data = value;
    node-&gt;next = anchor;
    anchor = node;
}
</code></pre>
<p>So sieht man sie oft, doch die andere Lösung gefällt mir besser und war auch wirklich nur eine Zeile lang. Würde mich freuen wenn ihr mir diese schreiben könntet <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>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1714535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1714535</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Sat, 23 May 2009 10:46:59 GMT</pubDate></item><item><title><![CDATA[Reply to push_back() vereinfacht on Sat, 23 May 2009 10:47:43 GMT]]></title><description><![CDATA[<p>mit einem konstruktor</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1714536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1714536</guid><dc:creator><![CDATA[knot()]]></dc:creator><pubDate>Sat, 23 May 2009 10:47:43 GMT</pubDate></item><item><title><![CDATA[Reply to push_back() vereinfacht on Sat, 23 May 2009 10:51:23 GMT]]></title><description><![CDATA[<p>knot() schrieb:</p>
<blockquote>
<p>mit einem konstruktor</p>
</blockquote>
<p>Kann ich mir nicht vorstellen und ich bin mir 100% sicher, dass es eine push_back() Methode war.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1714538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1714538</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Sat, 23 May 2009 10:51:23 GMT</pubDate></item><item><title><![CDATA[Reply to push_back() vereinfacht on Sat, 23 May 2009 10:53:25 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">anchor = new _knot(value, anchor);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1714539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1714539</guid><dc:creator><![CDATA[knot()]]></dc:creator><pubDate>Sat, 23 May 2009 10:53:25 GMT</pubDate></item><item><title><![CDATA[Reply to push_back() vereinfacht on Sat, 23 May 2009 10:55:55 GMT]]></title><description><![CDATA[<p>Achso, so meintest du es. _knot ist hierbei ein Struct, sicher das ich ein Konstruktor hinzufügen soll ? Structs sind ja immerhin zur Datenverwaltung finde ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1714540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1714540</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Sat, 23 May 2009 10:55:55 GMT</pubDate></item><item><title><![CDATA[Reply to push_back() vereinfacht on Sat, 23 May 2009 11:03:16 GMT]]></title><description><![CDATA[<p>Mein push_back hat auch nur eine Zeile (und das ist glaube ich auch der schönste Weg, weil 0 Code-duplizierung):<br />
Ich musste ma noch bissl was mit reinpacken, damit es evtl verständlicher wird...</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
class list
{
	struct node_base //der erste und letzte knoten ist ein dummy-knoten - also braucht er auch keinen wert
	{
		node_base *next;
		node_base *prev;

		node_base() {}
		node_base(node_base* _next, node_base* _prev) : next(_next), prev(_prev) {}
	};

	struct node : node_base //der normale knoten
	{
		T val;

		node(const T&amp; _val, node_base *_prev, node_base *_next) : val(_val), node_base(_next, _prev) {}
	};

	struct _m
	{
		node_base anchor_begin;
		node_base anchor_end;

		_m() : anchor_begin(&amp;anchor_end, nullptr), anchor_end(nullptr, &amp;anchor_begin) {}
	};

	void _insert(const T&amp; val, node_base *before, node_base *after)
	{
		before-&gt;next = after-&gt;prev = new node(val, before, after);
	}
public:
	void push_back(const T&amp; to_push)
	{
		_insert(to_push, m.anchor_end.prev, &amp;m.anchor_end);
	}
</code></pre>
<p>vll hilfts ja, obwohl es ein anderes system ist (doppelt verkettet, du hast wahrscheinlich einfach, wie es aussieht)...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1714541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1714541</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 23 May 2009 11:03:16 GMT</pubDate></item><item><title><![CDATA[Reply to push_back() vereinfacht on Sat, 23 May 2009 11:09:04 GMT]]></title><description><![CDATA[<p>Alles klar danke, sieht ganz gut aus, aber ich bin mir immer noch nicht sicher, ob derjenige das über einen Konstruktor gelöst hatte. Egal, so ists auch gut.<br />
Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1714546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1714546</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Sat, 23 May 2009 11:09:04 GMT</pubDate></item><item><title><![CDATA[Reply to push_back() vereinfacht on Sat, 23 May 2009 11:19:53 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>Mein push_back hat auch nur eine Zeile (und das ist glaube ich auch der schönste Weg, weil 0 Code-duplizierung):</p>
</blockquote>
<p>es ist auch der notwendige weg in sachen speed, um initialisiererliste im konstruktor des knotens nehmen zu können.</p>
<p>ich zitiere aus <a href="https://duckduckgo.com/?q=isbn+3980673871&amp;cppnetbooks" rel="nofollow">3D-Spiele-Programmierung mit DirectX | ISBN: 3980673871</a> Seite 198:</p>
<blockquote>
<p>Ein nicht dem Standard entsprechender Konstruktor ermöglicht uns die Initialisierung von Listen. Klassen, die mit C++ erstellt wurden, sollten diese Konstruktoren nach Möglichkeit nutzen. Der Compiler hat dadurch die Möglichkeit, wesentlich effizienteren Code zu erzeugen.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1714551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1714551</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 23 May 2009 11:19:53 GMT</pubDate></item><item><title><![CDATA[Reply to push_back() vereinfacht on Sat, 23 May 2009 11:25:00 GMT]]></title><description><![CDATA[<p>Das es mit Konstruktor schneller geht wollte ich ja nie bestreiten - ich meinte nur, dass push_back an sich nichts macht, außer _insert aufzurufen, was ich bei den meisten Listen-Implementationen eigtl nich so gesehen habe - allerdings ist die MSVC-Std-Lib-Liste auch so implementiert. Das war für mich dann Grund genug, es auch so zu machen ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1714552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1714552</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 23 May 2009 11:25:00 GMT</pubDate></item><item><title><![CDATA[Reply to push_back() vereinfacht on Sun, 24 May 2009 01:26:05 GMT]]></title><description><![CDATA[<p>Da fundamental types (und Zeiger) nicht default konstruiert werden, ist es potentiell egal, ob man sie über eine initialiser-list initialisiert, oder erst nachdem der ctor gelaufen ist. Soll heissen: es kann einen Unterschied machen, kann aber genausogut auch keinen Unterschied machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1714799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1714799</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 24 May 2009 01:26:05 GMT</pubDate></item><item><title><![CDATA[Reply to push_back() vereinfacht on Sun, 24 May 2009 02:45:34 GMT]]></title><description><![CDATA[<p>es ging mir hier einzig und allein ums T. da das ein schwergewicht sein kann, muß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1714804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1714804</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 24 May 2009 02:45:34 GMT</pubDate></item></channel></rss>