<?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[Template und tyedef???]]></title><description><![CDATA[<p>Folgendes template:</p>
<pre><code class="language-cpp">template &lt;class T&gt;

class CResourceAllocList{

	typedef std::list&lt;std::pair&lt;double,T*&gt; &gt; EventElem_t; //FEHLER
	typedef std::list&lt;std::pair&lt;double,T*&gt; &gt;::iterator itEventElem_t; //FEHELR

//	template &lt;typename T&gt;

//	template &lt;typename T&gt;

	EventElem_t m_lEvents;

public:
	CResourceAllocList(void){};
	~CResourceAllocList(void){};
};
</code></pre>
<p>bei den tydefs gibts probleme?? kann mir jemand sagen warum..</p>
<p>fehler:</p>
<pre><code>d:\Projekte\WinCC_TagReduce\ANSI C Debug\eventqueue\ResourceAllocList.h(9): error C2146: syntax error : missing ';' before identifier 'itEventElem_t'

d:\Projekte\WinCC_TagReduce\ANSI C Debug\eventqueue\ResourceAllocList.h(9): error C2501: 'CResourceAllocList&lt;T&gt;::itEventElem_t' : missing storage-class or type specifiers

d:\Projekte\WinCC_TagReduce\ANSI C Debug\eventqueue\ResourceAllocList.h(9): warning C4346: 'std::list&lt;std::pair&lt;double,_Ty*&gt;&gt;::iterator' : dependent name is not a type
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/218108/template-und-tyedef</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 19:35:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/218108.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 16 Jul 2008 06:18:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 06:18:38 GMT]]></title><description><![CDATA[<p>Folgendes template:</p>
<pre><code class="language-cpp">template &lt;class T&gt;

class CResourceAllocList{

	typedef std::list&lt;std::pair&lt;double,T*&gt; &gt; EventElem_t; //FEHLER
	typedef std::list&lt;std::pair&lt;double,T*&gt; &gt;::iterator itEventElem_t; //FEHELR

//	template &lt;typename T&gt;

//	template &lt;typename T&gt;

	EventElem_t m_lEvents;

public:
	CResourceAllocList(void){};
	~CResourceAllocList(void){};
};
</code></pre>
<p>bei den tydefs gibts probleme?? kann mir jemand sagen warum..</p>
<p>fehler:</p>
<pre><code>d:\Projekte\WinCC_TagReduce\ANSI C Debug\eventqueue\ResourceAllocList.h(9): error C2146: syntax error : missing ';' before identifier 'itEventElem_t'

d:\Projekte\WinCC_TagReduce\ANSI C Debug\eventqueue\ResourceAllocList.h(9): error C2501: 'CResourceAllocList&lt;T&gt;::itEventElem_t' : missing storage-class or type specifiers

d:\Projekte\WinCC_TagReduce\ANSI C Debug\eventqueue\ResourceAllocList.h(9): warning C4346: 'std::list&lt;std::pair&lt;double,_Ty*&gt;&gt;::iterator' : dependent name is not a type
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1547996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1547996</guid><dc:creator><![CDATA[templateFrage]]></dc:creator><pubDate>Wed, 16 Jul 2008 06:18:38 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 07:21:44 GMT]]></title><description><![CDATA[<p><a href="http://www.parashift.com/c++-faq-lite/templates.html#faq-35.18" rel="nofollow">http://www.parashift.com/c++-faq-lite/templates.html#faq-35.18</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548036</guid><dc:creator><![CDATA[bladerunner10]]></dc:creator><pubDate>Wed, 16 Jul 2008 07:21:44 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 11:01:30 GMT]]></title><description><![CDATA[<p>templateFrage schrieb:</p>
<blockquote>
<pre><code class="language-cpp">template &lt;class T&gt;
class CResourceAllocList{
	
	typedef std::list&lt;std::pair&lt;double,T*&gt; &gt; EventElem_t; //FEHLER
	typedef std::list&lt;std::pair&lt;double,T*&gt; &gt;::iterator itEventElem_t; 

	EventElem_t m_lEvents;

public:
	CResourceAllocList(void){};
	~CResourceAllocList(void){};
};
</code></pre>
</blockquote>
<p>Noch eine Anmerkung zum Stil:</p>
<p>Bei diesen beiden Zeilen</p>
<pre><code class="language-cpp">CResourceAllocList(void){};
	~CResourceAllocList(void){};
</code></pre>
<p>1. die ';' sind (hier) überflüssig<br />
2. in C++ schreibt man eher fn() anstatt fn(void) // Das ist ein &quot;C-ism&quot;<br />
3. Wenn C'tor und/oder D'tor sowieso nix zu tun haben, sollte man sie weglassen<br />
(es sei denn, man muß einen anderen (nicht default-)Konstruktor haben).</p>
<p>und noch 4. bist du dir sicher, daß du eine std::list nehmen willst und keinen std::vector?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548153</guid><dc:creator><![CDATA[bladerunner10]]></dc:creator><pubDate>Wed, 16 Jul 2008 11:01:30 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 12:40:16 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18986">@bladerunner10</a>,<br />
Sorry, aber die Stilfrage ist eine Glaubensfrage. Ich bin teilweise mit deinen Vorschlägen zum Beispiel gar nicht einverstanden.</p>
<p>Desweiteren hat dein Link nicht wirklich viel mit dem Problem zu tun. Bzw. erst zum Schluss, aber das Beispiel im Link ist eigentlich in einem anderen Kontext.</p>
<p>@templateFrage,<br />
Es geht allerdings wirklich darum, dass dein Compiler nicht wissen kann, dass <code>iterator</code> ein Typ ist und nicht zum Beispiel eine statische Zahl oder sowas ähnliches. Also einfach nach dem typedef ein typename setzen und es sollte funktionieren:</p>
<pre><code class="language-cpp">typedef typename std::list&lt;std::pair&lt;double,T*&gt; &gt;::iterator itEventElem_t;
</code></pre>
<p>Das gilt also nicht nur für Ableitungen, sondern ist ein allgemeines Problem von templates. Da mit ihnen so viel möglich ist, muss man dem Compiler etwas helfen <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>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548213</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 16 Jul 2008 12:40:16 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 12:54:01 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18986">@bladerunner10</a>,<br />
Sorry, aber die Stilfrage ist eine Glaubensfrage. Ich bin teilweise mit deinen Vorschlägen zum Beispiel gar nicht einverstanden.</p>
</blockquote>
<p>Geht't konkreter?<br />
Ein überflüssiges ';' ist IMHO keine Glaubensfrage.</p>
<p>Dravere schrieb:</p>
<blockquote>
<p>Desweiteren hat dein Link nicht wirklich viel mit dem Problem zu tun. Bzw. erst zum Schluss, aber das Beispiel im Link ist eigentlich in einem anderen Kontext.</p>
</blockquote>
<p>Hmmm...Tja...Vielleicht habe ich mich da ein bisschen verguckt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548230</guid><dc:creator><![CDATA[bladerunner10]]></dc:creator><pubDate>Wed, 16 Jul 2008 12:54:01 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 13:01:53 GMT]]></title><description><![CDATA[<p>bladerunner10 schrieb:</p>
<blockquote>
<p>Geht't konkreter?<br />
Ein überflüssiges ';' ist IMHO keine Glaubensfrage.</p>
</blockquote>
<p>Wieso? Es ist überflüssig, der Compiler ignoriert es einfach. Dann kann man es hinsetzen oder nicht, das stört doch niemand. Es ist eine reine Stilfrage, ob man es schön findet, dort noch ein Semikolon hinzusetzen oder nicht. Das ist völlig subjektiv und hat nichts mit der Funktionalität des Programms zu tun.</p>
<p>Oder die Sache mit dem void weglassen. Mache ich persönlich auch, aber es ändert auch nichts an der Funktionalität des Programms. Vielleicht findet das jemand eindeutiger, wenn dort ein void steht. Das ist jedem frei gelassen.</p>
<p>Dann der C'tor und D'tor: Ich schreibe auch die leeren immer hin. Ich habe es gern, wenn ich gleich sehe was die machen. Wenn die nicht da sind, suche ich die völlig vergebens und das kostet Zeit. Daher immer hin schreiben. Ist auch praktisch, wenn man Dinge an der Klasse verändert, dann sieht man die C'tors und weiss gleich, AH, da muss ich auch noch was ändern. Aber vielleicht empfindet da jemand anders, das ist völlig subjektiv.</p>
<p>Und das 4. finde ich einfach nur witzig. Wieso willst du ihm einen std::vector andrehen? Ich sehe im Gegenteil immer viel zu viele Leute, welche einen std::vector benutzen und dabei besser mit einer std::list oder std::deque bedient wären. Aber das ist ja an sich schon eine witzige Frage. Willst du bei jedem die Frage stellen, welcher eine std::list benutzt? <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üssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548242</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 16 Jul 2008 13:01:53 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 13:07:53 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>bladerunner10 schrieb:</p>
<blockquote>
<p>Geht't konkreter?<br />
Ein überflüssiges ';' ist IMHO keine Glaubensfrage.</p>
</blockquote>
<p>Wieso? Es ist überflüssig, der Compiler ignoriert es einfach. Dann kann man es hinsetzen oder nicht, das stört doch niemand. Es ist eine reine Stilfrage, ob man es schön findet, dort noch ein Semikolon hinzusetzen oder nicht. Das ist völlig subjektiv und hat nichts mit der Funktionalität des Programms zu tun.</p>
</blockquote>
<p>Richtig, hat nichts mit der Funktionalität zu tun. Ich schreibe über all in meinem Kot gerne überflüssige ';'</p>
<p>Dravere schrieb:</p>
<blockquote>
<p>Oder die Sache mit dem void weglassen. Mache ich persönlich auch, aber es ändert auch nichts an der Funktionalität des Programms. Vielleicht findet das jemand eindeutiger, wenn dort ein void steht. Das ist jedem frei gelassen.</p>
</blockquote>
<p>Wie Du willst. Für mich ist es ein C-ism.</p>
<p>Dravere schrieb:</p>
<blockquote>
<p>Dann der C'tor und D'tor: Ich schreibe auch die leeren immer hin. Ich habe es gern, wenn ich gleich sehe was die machen. Wenn die nicht da sind, suche ich die völlig vergebens und das kostet Zeit. Daher immer hin schreiben. Ist auch praktisch, wenn man Dinge an der Klasse verändert, dann sieht man die C'tors und weiss gleich, AH, da muss ich auch noch was ändern. Aber vielleicht empfindet da jemand anders, das ist völlig subjektiv.</p>
</blockquote>
<p>Ja ich schreibe auch gerne Kot hin, der nix bewirkt, nur um zu sehen, daß der nix bewirkt...</p>
<p>Dravere schrieb:</p>
<blockquote>
<p>Und das 4. finde ich einfach nur witzig. Wieso willst du ihm einen std::vector andrehen? Ich sehe im Gegenteil immer viel zu viele Leute, welche einen std::vector benutzen und dabei besser mit einer std::list oder std::deque bedient wären. Aber das ist ja an sich schon eine witzige Frage. Willst du bei jedem die Frage stellen, welcher eine std::list benutzt? <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>
</blockquote>
<p>Ja, eigentlich schon. Nämlich um zu sehen, ob der/die versteht, was er/sie da tut.<br />
Und der std::vector sollte erstmal der &quot;Default-Container&quot; sein.</p>
<p>Gute Nacht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548250</guid><dc:creator><![CDATA[bladerunner10]]></dc:creator><pubDate>Wed, 16 Jul 2008 13:07:53 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 13:24:01 GMT]]></title><description><![CDATA[<p>bladerunner10 schrieb:</p>
<blockquote>
<p>Richtig, hat nichts mit der Funktionalität zu tun. Ich schreibe über all in meinem Kot gerne überflüssige ';'</p>
</blockquote>
<p>Schön, wenn du das nicht gerne machst, aber wieso musst du es anderen verbieten und deinen eigenen Stil probieren anderen aufzuzwingen?<br />
Bei einzeilern schreibe ich immer ein Semikolon am Schluss, obwohl es überflüssig ist, aber ich finde das macht einen guten Abschluss.<br />
Es ist ein reines: &quot;Ich finde es schön!&quot; ... &quot;Ich nicht!&quot; ... daher Glaubensfrage.</p>
<p>bladerunner10 schrieb:</p>
<blockquote>
<p>Wie Du willst. Für mich ist es ein C-ism.</p>
</blockquote>
<p>Wie du willst, aber verkaufe deine subjektive Meinung nicht als faktische Tatsache!</p>
<p>bladerunner10 schrieb:</p>
<blockquote>
<p>Ja ich schreibe auch gerne Kot hin, der nix bewirkt, nur um zu sehen, daß der nix bewirkt...</p>
</blockquote>
<p>Du machst das vielleicht nicht gern, aber das heisst nicht, dass dies für alle gilt. Es ist so eine EXTREM SUBJEKTIVE Sache und du setzt dich hin und verkaufst deine Subjektivität als Tatsache, dass ist ja schon fasst arrogant.</p>
<p>Glaubst du auch nicht an Gott und deshalb darf niemand an Gott glauben?</p>
<p>bladerunner10 schrieb:</p>
<blockquote>
<p>Ja, eigentlich schon. Nämlich um zu sehen, ob der/die versteht, was er/sie da tut.</p>
</blockquote>
<p>Verstehst du es denn? <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>bladerunner10 schrieb:</p>
<blockquote>
<p>Und der std::vector sollte erstmal der &quot;Default-Container&quot; sein.</p>
</blockquote>
<p>Also wenn schon überhaupt, dann std::deque, da es std::vector und std::list vereinigt.</p>
<p>bladerunner10 schrieb:</p>
<blockquote>
<p>Gute Nacht...</p>
</blockquote>
<p>Schlaf gut und schöne Träume.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548272</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 16 Jul 2008 13:24:01 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 13:27:23 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Also wenn schon überhaupt, dann std::deque, da es std::vector und std::list vereinigt.</p>
<p>Grüssli</p>
</blockquote>
<p>Wie kommst Du denn zu der irrigen Annahme?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548276</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 16 Jul 2008 13:27:23 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 13:36:23 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Wie kommst Du denn zu der irrigen Annahme?</p>
</blockquote>
<p>Eine std::deque basiert meiner Erinnerung nach immer noch aus Blöcken, wie eine std::list. Nur enthält ein Block mehrere Elemente. Wenn ein Block nicht mehr benötigt wird, so wird dieser freigegeben, bzw. man kann auch Blöcke im voraus reservieren, was einem sehr an einen std::vector erinnert. Man kann bei einer Deque auch ein Elementzugriff über Indices machen, wie bei einem std::vector. Einfügen, Ahängen usw ist etwas schneller als bei einem std::vector aber etwas langsamer als bei einer std::list. Es ist halt eben ein Zwischending.</p>
<p>-&gt; <a href="http://www.cplusplus.com/reference/stl/deque/" rel="nofollow">http://www.cplusplus.com/reference/stl/deque/</a></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548286</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 16 Jul 2008 13:36:23 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 13:42:46 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Tachyon schrieb:</p>
<blockquote>
<p>Wie kommst Du denn zu der irrigen Annahme?</p>
</blockquote>
<p>Eine std::deque basiert meiner Erinnerung nach immer noch aus Blöcken, wie eine std::list. Nur enthält ein Block mehrere Elemente. Wenn ein Block nicht mehr benötigt wird, so wird dieser freigegeben, bzw. man kann auch Blöcke im voraus reservieren, was einem sehr an einen std::vector erinnert. Man kann bei einer Deque auch ein Elementzugriff über Indices machen, wie bei einem std::vector. Einfügen, Ahängen usw ist etwas schneller als bei einem std::vector aber etwas langsamer als bei einer std::list. Es ist halt eben ein Zwischending.</p>
<p>-&gt; <a href="http://www.cplusplus.com/reference/stl/deque/" rel="nofollow">http://www.cplusplus.com/reference/stl/deque/</a></p>
<p>Grüssli</p>
</blockquote>
<p>Eine deque ist oft ein ganz normaler Vektor mit zusätzlicher Indexverwaltung. Es <em>kann</em> auch eine doppelt verkettete Liste sein. Muss es aber nicht. Garantiert ist, dass man im Gegensatz zum Vektor, auch am Anfang schnell einfügen/löschen kann, und nicht nur am Ende. Wenn Du Elemente mittendrin löscht, <em>kann</em> es genauso &quot;langsam&quot; sein wie bei einem Vektor. Oder auch nicht. <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 />
Ich würde mich, wenn es drauf ankommt, jedenfalls nicht drauf verlassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548292</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 16 Jul 2008 13:42:46 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 13:59:51 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Wenn Du Elemente mittendrin löscht, <em>kann</em> es genauso &quot;langsam&quot; sein wie bei einem Vektor. Oder auch nicht. <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>
</blockquote>
<p>Ja, sorry, hatte vergessen zu schreiben &quot;Einfügen am Anfang&quot;, war auch das gemeint. Allerdings wenn ich mich recht entsinne, funktioniert auch bei vielen Libs das einfügen und löschen in der Mitte schneller. Aber das wüsste ich jetzt nicht sicher und weiss auch, dass man davon nicht grundsätzlich ausgehen kann.</p>
<p>Tachyon schrieb:</p>
<blockquote>
<p>Ich würde mich, wenn es drauf ankommt, jedenfalls nicht drauf verlassen.</p>
</blockquote>
<p>Aber std::deque hat durchaus einige Vorteile gegenüber std::vector und kommt etwas näher an eine std::list. Wenn man einen Default-Container bräuchte, dann wäre meiner Meinung nach eben std::deque die richtige Wahl. Weil es eben ein gewisses Zwischending ist. Vielleicht etwas mehr in die Richtung std::vector, aber trotzdem.<br />
Und irrig ist meine Annahme insofern nicht <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>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548304</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 16 Jul 2008 13:59:51 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 14:19:42 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Eine deque ist oft ein ganz normaler Vektor mit zusätzlicher Indexverwaltung.</p>
</blockquote>
<p>Und wie vermeidest du dann Reallokationen? Ein deque kann nicht auf einem vector basieren: einerseits werden Objekte höchstens beim Einfügen oder Löschen in der Mitte verschoben, andererseits kann man ja nicht im Voraus sicher genug Speicher reservieren (zumal deque gerade nicht über capacity/reserve verfügt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548325</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 16 Jul 2008 14:19:42 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 14:34:01 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Tachyon schrieb:</p>
<blockquote>
<p>Eine deque ist oft ein ganz normaler Vektor mit zusätzlicher Indexverwaltung.</p>
</blockquote>
<p>Und wie vermeidest du dann Reallokationen? Ein deque kann nicht auf einem vector basieren: einerseits werden Objekte höchstens beim Einfügen oder Löschen in der Mitte verschoben, andererseits kann man ja nicht im Voraus sicher genug Speicher reservieren (zumal deque gerade nicht über capacity/reserve verfügt).</p>
</blockquote>
<p>Indem die die Indizes in der Indextabelle geschickt umbiegst. Du gehst dabei über eine Lookuptabelle in den Vektor rein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548338</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 16 Jul 2008 14:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 18:24:47 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>bladerunner10 schrieb:</p>
<blockquote>
<p>Geht't konkreter?<br />
Ein überflüssiges ';' ist IMHO keine Glaubensfrage.</p>
</blockquote>
<p>Wieso? Es ist überflüssig, der Compiler ignoriert es einfach. Dann kann man es hinsetzen oder nicht, das stört doch niemand. Es ist eine reine Stilfrage, ob man es schön findet, dort noch ein Semikolon hinzusetzen oder nicht. Das ist völlig subjektiv und hat nichts mit der Funktionalität des Programms zu tun.</p>
</blockquote>
<pre><code class="language-cpp">int main () {};
</code></pre>
<pre><code>$ g++ -pedantic test.cpp
test.cpp:1: error: extra ';'
</code></pre>
<p>Also keine reine Stilfrage.</p>
<p>Dravere schrieb:</p>
<blockquote>
<p>Und das 4. finde ich einfach nur witzig. Wieso willst du ihm einen std::vector andrehen? Ich sehe im Gegenteil immer viel zu viele Leute, welche einen std::vector benutzen und dabei besser mit einer std::list oder std::deque bedient wären. Aber das ist ja an sich schon eine witzige Frage. Willst du bei jedem die Frage stellen, welcher eine std::list benutzt? <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>
</blockquote>
<p>Im Normalfall ist std::vector für so ziemlich alles geeignet, was kein <code>push_front</code> braucht (und das braucht man wirklich lächerlich selten) und auch der am besten optimierte Container.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548437</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Wed, 16 Jul 2008 18:24:47 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 19:47:52 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>Tachyon schrieb:</p>
<blockquote>
<p>Eine deque ist oft ein ganz normaler Vektor mit zusätzlicher Indexverwaltung.</p>
</blockquote>
<p>Und wie vermeidest du dann Reallokationen? Ein deque kann nicht auf einem vector basieren: einerseits werden Objekte höchstens beim Einfügen oder Löschen in der Mitte verschoben, andererseits kann man ja nicht im Voraus sicher genug Speicher reservieren (zumal deque gerade nicht über capacity/reserve verfügt).</p>
</blockquote>
<p>Indem die die Indizes in der Indextabelle geschickt umbiegst. Du gehst dabei über eine Lookuptabelle in den Vektor rein.</p>
</blockquote>
<p>Du hast die Frage nicht verstanden. Wie gehst du mit dem Fall um, dass dein Vektor voll ist, und du ein zusätzliches Element einfügst (egal wo)? Ein Vektor <em>muss</em> in diesem Fall reallokieren, ein deque <em>darf es nicht</em>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548491</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 16 Jul 2008 19:47:52 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 19:48:59 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>...ein deque <em>darf es nicht</em>.</p>
</blockquote>
<p>Wo steht das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548495</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 16 Jul 2008 19:48:59 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Wed, 16 Jul 2008 20:06:25 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>...ein deque <em>darf es nicht</em>.</p>
</blockquote>
<p>Wo steht das?</p>
</blockquote>
<p>Im Standard (23.2.1.3). Insert am Anfang und am Ende hat immer konstante Komplexität (nicht bloß amortisiert) und bewirkt einen einzelnen Aufruf des Copyctors. Im schlimmsten Falle ist die Komplexität für das Einfügen in der Mitte linear bzgl. des Minimums der Distanz der Einfügestelle von beiden Enden des Containers. Das Einfügen an einem Ende invalidiert alle Iteratoren aber keine Referenzen oder Zeiger auf Elemente.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548499</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 16 Jul 2008 20:06:25 GMT</pubDate></item><item><title><![CDATA[Reply to Template und tyedef??? on Thu, 17 Jul 2008 07:32:36 GMT]]></title><description><![CDATA[<p>Boing! <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/1548625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548625</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 17 Jul 2008 07:32:36 GMT</pubDate></item></channel></rss>