<?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 Klasse Stack realisiert mit stl Klasse vector]]></title><description><![CDATA[<p>Der folgende Stack funktioniert nicht. Ich glaube es liegt irgendwie an den Templates. Seht Ihr einen Syntaxfehler?</p>
<pre><code class="language-cpp">template &lt;class T&gt; class CStack
{
    public:
           typedef vector &lt;T&gt; Container;
           typedef Container::iterator Iterator;
           Container v1;
           Iterator j;
           CStack(int size)
           {
              vector &lt;T&gt; V (size);           
           }
           ~CStack()
           {}
           void push(T wert)
           {
               v1.push_back(wert);    
           }
           void pop()
           {
               v1.pop_back();  
           }
           void ausgabe()
           {
               for (int k = 0; k &lt; v1.size(); k++)
                   cout &lt;&lt; v1[k] &lt;&lt; endl;
               cout &lt;&lt; endl;     
           }
           void top()
           {
                if ( 0 == v1.empty() )
                {
                   for(j=v1.begin(); j != v1.end()-1; j++); 
                       cout &lt;&lt; &quot;Inhalt des obersten Elements: &quot; &lt;&lt; *j &lt;&lt; endl;
                }
                else
                   cout &lt;&lt; &quot;Der Stack ist leer.&quot; &lt;&lt; endl;
                cout &lt;&lt; endl;    
           }
           int empty()
           {    
                if ( 0 == v1.empty() )
                   return 0;   
                else
                   return 1;
           }    
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/128309/template-klasse-stack-realisiert-mit-stl-klasse-vector</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 17:10:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128309.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Dec 2005 12:57:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template Klasse Stack realisiert mit stl Klasse vector on Fri, 02 Dec 2005 12:57:52 GMT]]></title><description><![CDATA[<p>Der folgende Stack funktioniert nicht. Ich glaube es liegt irgendwie an den Templates. Seht Ihr einen Syntaxfehler?</p>
<pre><code class="language-cpp">template &lt;class T&gt; class CStack
{
    public:
           typedef vector &lt;T&gt; Container;
           typedef Container::iterator Iterator;
           Container v1;
           Iterator j;
           CStack(int size)
           {
              vector &lt;T&gt; V (size);           
           }
           ~CStack()
           {}
           void push(T wert)
           {
               v1.push_back(wert);    
           }
           void pop()
           {
               v1.pop_back();  
           }
           void ausgabe()
           {
               for (int k = 0; k &lt; v1.size(); k++)
                   cout &lt;&lt; v1[k] &lt;&lt; endl;
               cout &lt;&lt; endl;     
           }
           void top()
           {
                if ( 0 == v1.empty() )
                {
                   for(j=v1.begin(); j != v1.end()-1; j++); 
                       cout &lt;&lt; &quot;Inhalt des obersten Elements: &quot; &lt;&lt; *j &lt;&lt; endl;
                }
                else
                   cout &lt;&lt; &quot;Der Stack ist leer.&quot; &lt;&lt; endl;
                cout &lt;&lt; endl;    
           }
           int empty()
           {    
                if ( 0 == v1.empty() )
                   return 0;   
                else
                   return 1;
           }    
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/932266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932266</guid><dc:creator><![CDATA[shurik&#x27;n]]></dc:creator><pubDate>Fri, 02 Dec 2005 12:57:52 GMT</pubDate></item><item><title><![CDATA[Reply to Template Klasse Stack realisiert mit stl Klasse vector on Fri, 02 Dec 2005 12:59:39 GMT]]></title><description><![CDATA[<p>Syntaxfehler erkennt der Compiler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932269</guid><dc:creator><![CDATA[Debugger.]]></dc:creator><pubDate>Fri, 02 Dec 2005 12:59:39 GMT</pubDate></item><item><title><![CDATA[Reply to Template Klasse Stack realisiert mit stl Klasse vector on Fri, 02 Dec 2005 13:19:01 GMT]]></title><description><![CDATA[<p>Debugger. schrieb:</p>
<blockquote>
<p>Syntaxfehler erkennt der Compiler.</p>
</blockquote>
<p>also semantik fehler oder was soll ich jetzt dazu sagen? <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/932296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932296</guid><dc:creator><![CDATA[shurik&#x27;n]]></dc:creator><pubDate>Fri, 02 Dec 2005 13:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Template Klasse Stack realisiert mit stl Klasse vector on Fri, 02 Dec 2005 13:23:48 GMT]]></title><description><![CDATA[<p>Debugger. schrieb:</p>
<blockquote>
<p>Syntaxfehler erkennt der Compiler.</p>
</blockquote>
<p>Bei Templateklassen aber erst wenn die Klasse instanziert wird!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932307</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Fri, 02 Dec 2005 13:23:48 GMT</pubDate></item><item><title><![CDATA[Reply to Template Klasse Stack realisiert mit stl Klasse vector on Fri, 02 Dec 2005 13:23:59 GMT]]></title><description><![CDATA[<p>&quot;funktioniert nicht&quot; ist keine ausreichende Fehlerbeschreibung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932308</guid><dc:creator><![CDATA[Der Schlaue]]></dc:creator><pubDate>Fri, 02 Dec 2005 13:23:59 GMT</pubDate></item><item><title><![CDATA[Reply to Template Klasse Stack realisiert mit stl Klasse vector on Fri, 02 Dec 2005 13:25:48 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Für top würde wohl das hier reichen</p>
<pre><code class="language-cpp">void top()
{
   if ( !v1.empty() )
   {
       cout &lt;&lt; &quot;Inhalt des obersten Elements: &quot; &lt;&lt; vl.back() &lt;&lt; endl;
   }
   else cout &lt;&lt; &quot;Der Stack ist leer.&quot; &lt;&lt; endl;
   cout &lt;&lt; endl;    
}
</code></pre>
<p>Allerdings sollte top bei einem Stack das oberste Element eher zurückgeben.<br />
Auch bei empty reicht ein</p>
<pre><code class="language-cpp">return vl.empty();
</code></pre>
<p>(empty sollte bool sein).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932312</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 02 Dec 2005 13:25:48 GMT</pubDate></item><item><title><![CDATA[Reply to Template Klasse Stack realisiert mit stl Klasse vector on Fri, 02 Dec 2005 13:29:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template &lt;class T&gt; class CStack
{
    public:
           typedef vector &lt;T&gt; Container;
           typedef Container::iterator Iterator;
           Container v1;
           Iterator j;
           CStack(int size)
           {
              vector &lt;T&gt; V (size);           
           }
}
</code></pre>
<p>Bei diesem Teil bin ich mir nicht sicher ob die Syntax richtig ist. Der Stack soll auchg für Strings funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932320</guid><dc:creator><![CDATA[shurik&#x27;n]]></dc:creator><pubDate>Fri, 02 Dec 2005 13:29:14 GMT</pubDate></item><item><title><![CDATA[Reply to Template Klasse Stack realisiert mit stl Klasse vector on Fri, 02 Dec 2005 13:51:27 GMT]]></title><description><![CDATA[<p>Der Konstruktor sieht auf jeden Fall falsch (bzw. nutzlos) aus - du erzeugst einen neuen Vektor mit 'size' Elementen, der sofort wieder freigegeben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932352</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 02 Dec 2005 13:51:27 GMT</pubDate></item><item><title><![CDATA[Reply to Template Klasse Stack realisiert mit stl Klasse vector on Fri, 02 Dec 2005 13:53:38 GMT]]></title><description><![CDATA[<p>shurik'n schrieb:</p>
<blockquote>
<pre><code class="language-cpp">template &lt;class T&gt; class CStack
{
    public:
           typedef vector &lt;T&gt; Container;
           typedef Container::iterator Iterator;
           Container v1;
           Iterator j;
           CStack(int size)
           {
              vector &lt;T&gt; V (size);           
           }
}
</code></pre>
<p>Bei diesem Teil bin ich mir nicht sicher ob die Syntax richtig ist. Der Stack soll auchg für Strings funktionieren.</p>
</blockquote>
<p>Syntax ist nahezu richtig, Semantik komplett im Eimer.</p>
<pre><code class="language-cpp">template &lt;class T&gt; class CStack
{
    public:
           typedef vector &lt;T&gt; Container;
           typedef typename Container::iterator Iterator; // &lt;---
           Container v1;
           Iterator j;

           //CStack(int size)
           //{
           //   vector &lt;T&gt; V (size); // &lt;--- unsinn          
           //}

           // Variante 1 erstellt einen Stack mit size Elementen;
           //            int size funktioniert prinzipiell auch, ein unsigned
           //            Typ ist aber wesentlich logischer.
           CStack( std::size_t size ) : v1(size) { }

           // Variante 2 erstellt einen leeren Stack, sichert aber schon mal
           //            Speicherplatz für size Elemente
           CStack( std::size_t size )
           {
             v1.reserve(size);
           }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/932353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932353</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Fri, 02 Dec 2005 13:53:38 GMT</pubDate></item><item><title><![CDATA[Reply to Template Klasse Stack realisiert mit stl Klasse vector on Fri, 02 Dec 2005 14:00:08 GMT]]></title><description><![CDATA[<p>Die beiden Member, also den Container und den Iterator solltest du in private packen. Dann kann dir niemand mit so Scherzen wie stack.j = irgendeinContainer.begin() dazwischenfunken. Also:</p>
<pre><code class="language-cpp">template &lt;class T&gt; class CStack
{
    public: //wenn du willst, dass man CStack::Container machen kann musst du die Typedefs public lassen
           typedef vector &lt;T&gt; Container;
           typedef Container::iterator Iterator;
    private:
           Container v1;
           Iterator j;
    public:
      //Methoden usw...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/932373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932373</guid><dc:creator><![CDATA[geloescht]]></dc:creator><pubDate>Fri, 02 Dec 2005 14:00:08 GMT</pubDate></item></channel></rss>