<?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[liste speicher reservieren und wieder freigeben]]></title><description><![CDATA[<p>hallo, ich soll eine klasse schreiben welche eine beliebeige anzahl an zeilen einliest und diese speichert. dieses sollen mit einem index angesprochen ausgegeben werden.<br />
ebenso soll mit einem index und einem string, der string an der bestimmten position geaendert werden.<br />
und die klasse soll die eingelesenen zeilen sortieren koennen (auf und absteigend) sowie auch wieder unsortieren. (ursprung herstellen)<br />
dazu einige fragen:<br />
1.)<br />
ich dachte an list, da die werte sortiert werden koennen, aber es nicht standardmaessig von alleine sortiert wird und ich mittels index die liste durchgehen kann (auslesen und aenern bestimmter zeilen)<br />
oder wuerdet ihr einen anderen containertyp empfehlen?</p>
<p>2.)<br />
denke ich nicht dass ich daran vorbei kommen werde dass ich in der klasse zwei listen haben werde.<br />
eine fuer den originalen zustand und eine fuer den aktuellen (koennen gleich sein aber eben auch verschieden, wenn der aktuelle sortiert wurde)<br />
oder wuerde jemandem was einfacheres einfallen?</p>
<p>3.)<br />
mache ich das erste mal was mit containern und denke ich sollte auch den speciher selbst verwalten.<br />
also habe ich einmal ein testprogramm gemacht um zu sehen ob es kompiliert:</p>
<pre><code class="language-cpp">list&lt;string&gt;* lp = new list&lt;string&gt;;

 delete lp;
</code></pre>
<p>wuerde sowas in ner klasse funktionieren?</p>
<p>also die erste zeile im konstruktor, die zweite im destruktor.<br />
bin mir nicht sicher ob mit dem delte der komplette speicher wieder freigegeben wird (und somit die liste komplett geloescht wird)</p>
<p>vielen dank fuer dir hilfe!!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/227940/liste-speicher-reservieren-und-wieder-freigeben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 17:29:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/227940.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 21 Nov 2008 18:10:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Fri, 21 Nov 2008 18:10:07 GMT]]></title><description><![CDATA[<p>hallo, ich soll eine klasse schreiben welche eine beliebeige anzahl an zeilen einliest und diese speichert. dieses sollen mit einem index angesprochen ausgegeben werden.<br />
ebenso soll mit einem index und einem string, der string an der bestimmten position geaendert werden.<br />
und die klasse soll die eingelesenen zeilen sortieren koennen (auf und absteigend) sowie auch wieder unsortieren. (ursprung herstellen)<br />
dazu einige fragen:<br />
1.)<br />
ich dachte an list, da die werte sortiert werden koennen, aber es nicht standardmaessig von alleine sortiert wird und ich mittels index die liste durchgehen kann (auslesen und aenern bestimmter zeilen)<br />
oder wuerdet ihr einen anderen containertyp empfehlen?</p>
<p>2.)<br />
denke ich nicht dass ich daran vorbei kommen werde dass ich in der klasse zwei listen haben werde.<br />
eine fuer den originalen zustand und eine fuer den aktuellen (koennen gleich sein aber eben auch verschieden, wenn der aktuelle sortiert wurde)<br />
oder wuerde jemandem was einfacheres einfallen?</p>
<p>3.)<br />
mache ich das erste mal was mit containern und denke ich sollte auch den speciher selbst verwalten.<br />
also habe ich einmal ein testprogramm gemacht um zu sehen ob es kompiliert:</p>
<pre><code class="language-cpp">list&lt;string&gt;* lp = new list&lt;string&gt;;

 delete lp;
</code></pre>
<p>wuerde sowas in ner klasse funktionieren?</p>
<p>also die erste zeile im konstruktor, die zweite im destruktor.<br />
bin mir nicht sicher ob mit dem delte der komplette speicher wieder freigegeben wird (und somit die liste komplett geloescht wird)</p>
<p>vielen dank fuer dir hilfe!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1618514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618514</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Fri, 21 Nov 2008 18:10:07 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Fri, 21 Nov 2008 18:20:07 GMT]]></title><description><![CDATA[<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>1.)<br />
ich dachte an list, da die werte sortiert werden koennen, aber es nicht standardmaessig von alleine sortiert wird und ich mittels index die liste durchgehen kann (auslesen und aenern bestimmter zeilen)<br />
oder wuerdet ihr einen anderen containertyp empfehlen?</p>
</blockquote>
<p>Du hast Random Access (wahlfreier Zugriff über einen Index), was <code>std::list</code> ungeeignet macht. Zu empfehlen sind <code>std::vector</code> und <code>std::deque</code> .</p>
<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>2.)<br />
denke ich nicht dass ich daran vorbei kommen werde dass ich in der klasse zwei listen haben werde.<br />
eine fuer den originalen zustand und eine fuer den aktuellen (koennen gleich sein aber eben auch verschieden, wenn der aktuelle sortiert wurde)<br />
oder wuerde jemandem was einfacheres einfallen?</p>
</blockquote>
<p>Du kannst in einem Container auch nur die Indizes speichern. Also wenn du eine Liste sortierst, bringst du parallel einen Container in die entsprechende Reihenfolge. Dann kannst du den Urprungszustand rekonstruieren. Eine Alternative zu Indizes wären auch Zeiger.</p>
<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>3.)<br />
mache ich das erste mal was mit containern und denke ich sollte auch den speciher selbst verwalten.</p>
</blockquote>
<p>Nein, ein Vorteil der Container besteht ja gerade darin, dass dir die Arbeit der Speicherverwaltung abgenommen wird. Du kannst also den Container ganz normal auf dem Stack deklarieren, im Destruktor wird alles aufgeräumt.</p>
<p>Beispielsweise (auf <a href="http://www.cplusplus.com" rel="nofollow">www.cplusplus.com</a> findest du mehr Infos zur STL):</p>
<pre><code class="language-cpp">std::deque&lt;std::string&gt; Deque;
Deque.push_back(&quot;hallo&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1618519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618519</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 21 Nov 2008 18:20:07 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Sat, 22 Nov 2008 14:22:41 GMT]]></title><description><![CDATA[<blockquote>
<p>Du kannst in einem Container auch nur die Indizes speichern. Also wenn du eine Liste sortierst, bringst du parallel einen Container in die entsprechende Reihenfolge. Dann kannst du den Urprungszustand rekonstruieren. Eine Alternative zu Indizes wären auch Zeiger.</p>
</blockquote>
<p>erst ein mal danke fuer deine tips, schaue gerade ob ich vector oder deque verwenden werde.<br />
zu dem oben zitierten, weiß ich nicht ob ich dich richtig verstehe.<br />
du meinst damit ich nicht die strings von einem kontainer in den anderen kopieren muss (was ja der zeitaufwendigere teil ist) kann ich einen zweiten container verwenden welcher mir die originalen indizes speichert.<br />
also koennte dann ca. so aussehen:<br />
container mit strings:<br />
1...Hallo Welt<br />
2...Zweite Zeile<br />
3...Drei</p>
<p>container mit indizes:<br />
1...1<br />
2...2<br />
3...3<br />
(nur hier muesste ich ja irgendwie gleich auf die adressen der zeilen (von container eins) kommen oder?) irgenwie mit pointer oder so denke ich waere geschickt.<br />
denn wenn ich die zweite zeile (im ersten container) aendere, muss ich dies ja in diesem container auch aendern - was in wirklichkeit ja nur eine andere speicher adresse ist.<br />
oder ist es in einem vector, wenn ich den wert (wie zb gesagt von zeile zwei aendere) die neue zeile an der gleichen position steht wie zuvor, nur ein anderer text??</p>
<p>nun sortiere ich ersteren container:<br />
1...Drei<br />
2...Hallo Welt<br />
3...Zweite Zeile<br />
habe aber in meinem zweiten container immer noch die original sortierung.</p>
<p>ich denke so hast du es gemeint, nun meine fragen dazu <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="😃"
    /><br />
1. sehe ich weder bei vector noch bei deque eine sort funktion, wie sollte ich dann auf / absteigend sortieren?</p>
<p>2. wie oben schon gefragt wie speichere ich die adressen der stings von container eins in container zwei?</p>
<p>danke!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1618861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618861</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Sat, 22 Nov 2008 14:22:41 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Sat, 22 Nov 2008 14:35:59 GMT]]></title><description><![CDATA[<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>1. sehe ich weder bei vector noch bei deque eine sort funktion, wie sollte ich dann auf / absteigend sortieren?</p>
</blockquote>
<p>Du solltest auch die globale Funktion <code>std::sort</code> (zu finden im Header <code>&lt;algorithm&gt;</code> ) verwenden. <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>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>2. wie oben schon gefragt wie speichere ich die adressen der stings von container eins in container zwei?</p>
</blockquote>
<p>Das wird ein wenig mühsamer.</p>
<p>Grundsätzlich gibt es mehrere Möglichkeiten. Das einfachste wäre, du würdest eine Struktur/Klasse schreiben, die sowohl einen <code>std::string</code> als auch einen <code>int</code> aufnehmen würde. Der Container würde dann diesen Typen enthalten. Am Anfang füllst du den Container mit entsprechenden Strings und schaust, dass jedes Objekt richtig nummeriert ist (über den <code>int</code> -Member).</p>
<p>Dann hast du einen Container mit folgendem Inhalt (fett ist der Index, in Klammern das jeweilige Objekt der Klasse):</p>
<pre><code>[b]0:[/b] (0, Hallo Welt)
[b]1:[/b] (1, Zweite Zeile)
[b]2:[/b] (2, Drei)
</code></pre>
<p>Wenn du das nun nach den Strings sortierst, hast du Folgendes:</p>
<pre><code>[b]0:[/b] (2, Drei)
[b]1:[/b] (0, Hallo Welt)
[b]2:[/b] (1, Zweite Zeile)
</code></pre>
<p>Schlussendlich kannst du den Container wieder nach den <code>int</code> s sortieren und erhältst die ursprüngliche Reihenfolge.</p>
<p>Um zwei mögliche Sortierkriterien für das gleiche Objekt zu definieren, schaust du dir am besten das Konzept der Funktionszeiger bzw. Funktoren (=Funktionsobjekten) an. In <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1608698.html" rel="nofollow">diesem Thread</a> habe ich das kurz erklärt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1618869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618869</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 22 Nov 2008 14:35:59 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Sun, 23 Nov 2008 15:31:38 GMT]]></title><description><![CDATA[<p>vielen dank fuer die tipps.<br />
habe mich entschieden vector mit pairs zu nehmen.<br />
habe einen code gebastelt (ohne klasse nur um zu testen)<br />
dieser sieht folgender massen aus:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;vector&gt;

using namespace std;

/*

*/

bool sortAsc(pair&lt;int, string&gt; a, pair&lt;int, string&gt; b) 
{
   return (a.second &lt; b.second);
}

bool sortDsc(pair&lt;int, string&gt; a, pair&lt;int, string&gt; b) 
{
   return (a.second &gt; b.second);
}

bool sortOrig(pair&lt;int, string&gt; a, pair&lt;int, string&gt; b) 
{
   return (a.first &lt; b.first);
}

int main()
{   
   vector&lt;pair&lt;int, string&gt; &gt; vec;   
   pair&lt;int, string&gt; element;

   string str;
   int elidx = 0;
   for(int i = 0; i&lt;5; ++i)
   {
     cin &gt;&gt; str;
     element = make_pair (elidx, str);
     vec.push_back (element);
     ++elidx;
   }

   cout &lt;&lt; &quot;ALL ELEMENTS:\n&quot;;
   for (size_t i=0; i&lt;vec.size(); ++i)
    cout &lt;&lt; vec.at(i).first &lt;&lt; &quot; &quot; &lt;&lt; vec.at(i).second &lt;&lt; endl;

   sort (vec.begin(), vec.end(), sortAsc);

   cout &lt;&lt; &quot;ALL ELEMENTS ASC:\n&quot;;
   for (size_t i=0; i&lt;vec.size(); ++i)
    cout &lt;&lt; vec.at(i).first &lt;&lt; &quot; &quot; &lt;&lt; vec.at(i).second &lt;&lt; endl;

   sort (vec.begin(), vec.end(), sortOrig);

   cout &lt;&lt; &quot;ALL ELEMENTS ORIGINAl:\n&quot;;
   for (size_t i=0; i&lt;vec.size(); ++i)
    cout &lt;&lt; vec.at(i).first &lt;&lt; &quot; &quot; &lt;&lt; vec.at(i).second &lt;&lt; endl;

   sort (vec.begin(), vec.end(), sortDsc);

   cout &lt;&lt; &quot;ALL ELEMENTS DESC:\n&quot;;
   for (size_t i=0; i&lt;vec.size(); ++i)
    cout &lt;&lt; vec.at(i).first &lt;&lt; &quot; &quot; &lt;&lt; vec.at(i).second &lt;&lt; endl;

   return 0;

}
</code></pre>
<p>funktioniert auch so weit.<br />
nur habe ich es nicht geschafft eine sortier funktion zu schreiben die sowohl asc als auch desc sortiert.</p>
<p>habe versucht bei desc so zu machen:<br />
ich habe diese funktion</p>
<pre><code class="language-cpp">bool sortAsc(pair&lt;int, string&gt; a, pair&lt;int, string&gt; b) 
{
   return (a.second &lt; b.second);
}
</code></pre>
<p>und rufe sort dann mittels:</p>
<pre><code class="language-cpp">sort (vec.begin(), vec.end(), !sortAsc);
</code></pre>
<p>auf.</p>
<p>geht aber leider nicht, ich verstehe nicht warum ich will einfach das zureuckgegebene von der funktion invertieren.<br />
bin durch deinen anderen post leider nicht schlauer geworden wie ich das effektiv loesen koennte.</p>
<p>sollte doch mit einer sortier funktion gehen oder?</p>
<p>(die zweite, welche nach int sortiert werde ich mir nicht ersparen koennen denke ich)</p>
<p>vielen dank, werde ggn abend mal die loesung mittels klasse versuchen (aber zuerst warte ich ein mal ob mein ansatz gut ist :))</p>
<p>danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619425</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Sun, 23 Nov 2008 15:31:38 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Sun, 23 Nov 2008 15:42:27 GMT]]></title><description><![CDATA[<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>vielen dank fuer die tipps.<br />
habe mich entschieden vector mit pairs zu nehmen.</p>
</blockquote>
<p>Gute Idee. Damit du nicht jedes Mal den ganzen Typ aufschreiben musst, empfehle ich ein Typedef:</p>
<pre><code class="language-cpp">typedef std::pair&lt;int, std::string&gt; MyPair; // halt passender Name
</code></pre>
<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>geht aber leider nicht, ich verstehe nicht warum ich will einfach das zureuckgegebene von der funktion invertieren.</p>
</blockquote>
<p>Du übergibst einen Funktions<strong>zeiger</strong>, und dieser kann natürlich nicht invertiert werden. Du kommst nicht darum herum, eine zweite Funktion zu schreiben. Aber diese kann ja auch die erste aufrufen:</p>
<pre><code class="language-cpp">bool SortDsc(const MyPair&amp; Left, const MyPair&amp; Right) // besser Const-Referenz!
{
    return !SortAsc(Left, Right);
}
</code></pre>
<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>(die zweite, welche nach int sortiert werde ich mir nicht ersparen koennen denke ich)</p>
</blockquote>
<p>Nicht wirklich... Aber das hast du ja schnell. <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/1619436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619436</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 23 Nov 2008 15:42:27 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Sun, 23 Nov 2008 15:50:28 GMT]]></title><description><![CDATA[<p>gut gut, dann mach ich mal die klasse hehe<br />
bis dennsen - danke fuer die schnelle antwort!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619443</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Sun, 23 Nov 2008 15:50:28 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Sun, 23 Nov 2008 17:14:08 GMT]]></title><description><![CDATA[<p>ok hier mein resultat:</p>
<p>lines.ih</p>
<pre><code class="language-cpp">#include &quot;lines.h&quot;

using namespace std;
</code></pre>
<p>lines.h</p>
<pre><code class="language-cpp">#ifndef _INCLUDED_LINES_
#define _INCLUDED_LINES_

#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;vector&gt;

typedef std::pair&lt;int, std::string&gt; Elements;

class Lines
{   
   vector&lt;Elements &gt; d_allLines;
   size_t d_elementIdx;
   std::string d_empty;

    public:
        enum Type
        {
            ORIGINAL,
            ASCENDING,
            DESCENDING,
            CASE_ASCENDING,
            CASE_DESCENDING,
        };

        Lines();
        ~Lines();
        size_t size() const;
        void set(size_t idx, std::string const &amp;str);
        std::string const &amp;at(size_t idx) const;
        void sort(Type t);

    private:
        void read();
        void unsort();
};

inline size_t Lines::size() const
{
    return d_allLines.size();
}

inline std::string const &amp;Lines::at(unsigned idx) const
{
    return idx &lt; d_allLines.size() ? d_allLines.at(idx) : d_empty;
}

#endif
</code></pre>
<p><a href="http://lines1.cc" rel="nofollow">lines1.cc</a> (std konstruktor)</p>
<pre><code class="language-cpp">#include &quot;lines.ih&quot;

Lines::Lines()
//:
{
   d_elementIdx = 0;
   d_empty = &quot;&quot;;
   read();
}
</code></pre>
<p><a href="http://read.cc" rel="nofollow">read.cc</a></p>
<pre><code class="language-cpp">#include &quot;lines.ih&quot;

void Lines::read()
{
    string line;
    while (getline(cin, line))
    {
       //make a pair out of the inserted line and
       //the generated index and insert it to the vector
       d_allLines.push_back (make_pair (d_elementIdx++, line));
    }
}
</code></pre>
<p><a href="http://sort.cc" rel="nofollow">sort.cc</a></p>
<pre><code class="language-cpp">#include &quot;lines.ih&quot;

bool ascending(const Elements&amp; left, const Elements&amp; right)
{
   return (left.second &lt; right.second);
}

bool descending(const Elements&amp; left, const Elements&amp; right)
{
   return -ascending(left, right);
}

//only two functions have to be implemented at the moment
int (*call[])(const Elements, const Elements) = 
{
    0,
    ascending,
    descending,
    0,
    0,
};

void Lines::sort(Type type) 
{
    if (type == ORIGINAL)
        unsort();
    else
    	sort (d_allLines.begin(), d_allLines.end(), call[type]);
}
</code></pre>
<p><a href="http://unsort.cc" rel="nofollow">unsort.cc</a></p>
<pre><code class="language-cpp">#include &quot;lines.ih&quot;

bool original(const Elements&amp; left, const Elements&amp; right)
{  //check the first element of the pair (the generated index)
   return (left.first &lt; right.first);
}

void Lines::unsort() 
{	
    sort (d_allLines.begin(), d_allLines.end(), original);
}
</code></pre>
<p><a href="http://set.cc" rel="nofollow">set.cc</a></p>
<pre><code class="language-cpp">#include &quot;lines.ih&quot;

void Lines::set(size_t idx, std::string const &amp;str)
{
	//check all elements from the beginning to the 
	//end if the element id equals the idx if found
	//change the stored string at this position
    for (size_t i = 0; i &lt; d_allLines.size(); ++i)
    {
      if(d_allLines.at(i).first == idx)
      		d_allLines.at(i).second = str;
    }
}
</code></pre>
<p>versuchte gerade zu kompilieren, bekomme aber schon einen fehler bei der klasse an sich (lines.h).</p>
<p>[quote]...es ist verboten einen vector ohne typ zu deklarieren[code]</p>
<p>kA was das sein soll, gebe ja den typ vom typdef an - was mache ich falsch?</p>
<p>muss jetzt mal weg bin dann am abend zurueck...</p>
<p>bin auch fuer hinweise zu den diversen funktionen dankbar, was ist nicht gut implementiert usw.</p>
<p>danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619493</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Sun, 23 Nov 2008 17:14:08 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Sun, 23 Nov 2008 18:46:41 GMT]]></title><description><![CDATA[<p>Inkludier mal <code>&lt;utility&gt;</code> für <code>std::pair</code> ...</p>
<p>Einige Dinge, die mir noch aufgefallen sind:</p>
<ul>
<li>Das mit dem Header <code>&quot;lines.ih&quot;</code> und <code>using namespace std;</code> würde ich nicht so machen. Ich selber schreibe <code>std::</code> meistens bei jedem Bezeichner davor. Aber wenn du darauf verzichten willst, kannst du den Namensraum auch in der Implementierungsdatei (bzw. den Dateien) bekannt machen.</li>
<li>Soviele Implementierungsdateien halte ich für unnötig. Es ist nicht selten der Fall, dass eine Datei ein wenig länger wird. Aber dann brauchst du auch keinen &quot;Zwischenheader&quot;. Und wenn jeder Header mehrere Implementierungsdateien erhält, hat man sehr schnell sehr viele Dateien, die man nicht mehr genau zuordnen kann.</li>
<li>Das Funktionszeiger-Array hat bei dir die Signatur <code>int (const Elements, const Elements)</code> . Sollte diese nicht <code>bool (const Elements&amp;, const Elements&amp;)</code> sein?</li>
<li>Wieso behandelst du <code>unsort()</code> als Spezialfall? Du könntest die Funktion doch auch als Zeiger in <code>call</code> speichern.</li>
<li>Sei vielleicht ein wenig konsistenter mit den Grössentypen. Manchmal verwendest du <code>int</code> , manchmal <code>unsigned int</code> und zum Teil <code>size_t</code> .</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/1619565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619565</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 23 Nov 2008 18:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Sun, 23 Nov 2008 19:08:51 GMT]]></title><description><![CDATA[<blockquote>
<p>Inkludier mal <code>&lt;utility&gt;</code> für <code>std::pair</code> ...<br />
hat nichts gebracht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
wundert mich auch, denn wie ich das ganze in nem anderenprogram (ohne klasse) getestet habe hat es funktioniert...</p>
</blockquote>
<blockquote>
<p>Das mit dem Header &quot;lines.ih&quot; und using namespace std; würde ich nicht so machen. Ich selber schreibe std:: meistens bei jedem Bezeichner davor. Aber wenn du darauf verzichten willst, kannst du den Namensraum auch in der Implementierungsdatei (bzw. den Dateien) bekannt machen.</p>
</blockquote>
<p>unser prof macht das so, habs einfach uebernommen <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>Soviele Implementierungsdateien halte ich für unnötig. Es ist nicht selten der Fall, dass eine Datei ein wenig länger wird. Aber dann brauchst du auch keinen &quot;Zwischenheader&quot;. Und wenn jeder Header mehrere Implementierungsdateien erhält, hat man sehr schnell sehr viele Dateien, die man nicht mehr genau zuordnen kann.</p>
</blockquote>
<p>verstehe nicht ganze was du meinst sorry <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>
<blockquote>
<p>Das Funktionszeiger-Array hat bei dir die Signatur <code>int (const Elements, const Elements)</code> . Sollte diese nicht <code>bool (const Elements&amp;, const Elements&amp;)</code> sein?</p>
</blockquote>
<p>mein fehler, waere ich dann vermutlich beim weiteren kompliieren drauf gekommen (wollte zuerst ein mal die klasse fertig bekommen)</p>
<blockquote>
<p>Wieso behandelst du <code>unsort()</code> als Spezialfall? Du könntest die Funktion doch auch als Zeiger in <code>call</code> speichern.</p>
</blockquote>
<p>stimmt mache ich <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>
<blockquote>
<p>Sei vielleicht ein wenig konsistenter mit den Grössentypen. Manchmal verwendest du <code>int</code> , manchmal <code>unsigned int</code> und zum Teil <code>size_t</code> .[/list]</p>
</blockquote>
<p>jop mach ich auch sorry habs nur schnell mal geschrieben...</p>
<p>wenn mir jemand mit meinem vector problem helfen koennnte waere es super, schaffe es nicht die klasse zu kompilieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>danke euch!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619587</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Sun, 23 Nov 2008 19:08:51 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Sun, 23 Nov 2008 19:18:02 GMT]]></title><description><![CDATA[<p>hier die fehlermeldungen:</p>
<blockquote>
<p>lines.h:13: error: ISO C++ forbids declaration of <code>vector' with no type lines.h:13: error: expected</code>;' before '&lt;' token<br />
lines.h: In member function <code>size_t Lines::size() const': lines.h:40: error:</code>d_allLines' undeclared (first use this function)<br />
lines.h:40: error: (Each undeclared identifier is reported only once for each function it appears in.)<br />
lines.h: In member function <code>const std::string&amp; Lines::at(unsigned int) const': lines.h:45: error:</code>d_allLines' undeclared (first use this function)</p>
</blockquote>
<p>weiß nicht warum, hab zum spaß mal den typ auf int geandert, also:</p>
<pre><code class="language-cpp">vector&lt;int&gt; d_allLines;
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">vector&lt;Elements &gt; d_allLines;
</code></pre>
<p>gleicher fehler - was mache ich falsch? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1619591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619591</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Sun, 23 Nov 2008 19:18:02 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Sun, 23 Nov 2008 19:26:02 GMT]]></title><description><![CDATA[<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>unser prof macht das so, habs einfach uebernommen <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>Nicht gut. Als Programmierer solltest du selber denken. <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>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>verstehe nicht ganze was du meinst sorry <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>
</blockquote>
<p>Du hast fünf (!) Implementierungsdateien (.cc-Dateien), die einem einzigen Header zugeordnet sind.</p>
<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>wenn mir jemand mit meinem vector problem helfen koennnte waere es super, schaffe es nicht die klasse zu kompilieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p><code>vector</code> liegt natürlich im Namensraum <code>std</code> ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619595</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 23 Nov 2008 19:26:02 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Sun, 23 Nov 2008 19:44:03 GMT]]></title><description><![CDATA[<p>ja, hatte schon bei meiner letzten frage jemand der mir gesagt hat ich soll es nicht so machen (5 .cc datein) aber mein prof will es so also muss ich es so machen <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>danke fuer den std:: tipp, echt zu dumm - was solls <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>jetzt hab ich mich schon gefreut das alles passt, doch in der letzten datei die ich kompiliere fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>geht um die <a href="http://sort.cc" rel="nofollow">sort.cc</a> hier noch ein mal:</p>
<blockquote>
<p>#include &quot;lines.ih&quot;</p>
<p>bool ascending(const Elements&amp; left, const Elements&amp; right)<br />
{<br />
return left.second &lt; right.second;<br />
}</p>
<p>bool descending(const Elements&amp; left, const Elements&amp; right)<br />
{<br />
return -ascending(left, right);<br />
}</p>
<p>bool original(const Elements&amp; left, const Elements&amp; right)<br />
{ //check the first element of the pair (the generated index)<br />
return left.first &lt; right.first;<br />
}</p>
<p>//only three functions have to be implemented at the moment<br />
bool (*call[])(const Elements&amp;, const Elements&amp;) =<br />
{<br />
original,<br />
ascending,<br />
descending,<br />
0,<br />
0,<br />
};</p>
<p>void Lines::sort(Type type)<br />
{<br />
sort (d_allLines.begin(), d_allLines.end(), call[type]);<br />
}</p>
</blockquote>
<p>folgende fehlermeldung:</p>
<blockquote>
<p>20:37 thomas:~/c++/set3/17/lines g++ -Wall -c <a href="http://sort.cc" rel="nofollow">sort.cc</a><br />
<a href="http://sort.cc" rel="nofollow">sort.cc</a>: In member function <code>void Lines::sort(Lines::Type)': sort.cc:31: error: no matching function for call to</code>Lines::sort(__gnu_cxx::__normal_iterator&lt;Elements*, std::vector&lt;Elements, std::allocator&lt;Elements&gt; &gt; &gt;, __gnu_cxx::__normal_iterator&lt;Elements*, std::vector&lt;Elements, std::allocator&lt;Elements&gt; &gt; &gt;, bool (*&amp;)(const Elements&amp;, const Elements&amp;))'<br />
<a href="http://sort.cc:30" rel="nofollow">sort.cc:30</a>: note: candidates are: void Lines::sort(Lines::Type)</p>
</blockquote>
<p>leider werde ich nicht schlau daraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
bin mir nicht sicher ob ich dass mit pointern zu funktionen richtig verstanden habe. ich behandle dieses codestueck:</p>
<blockquote>
<p>bool (*call[])(const Elements&amp;, const Elements&amp;) =<br />
{<br />
original,<br />
ascending,<br />
descending,<br />
0,<br />
0,<br />
};</p>
</blockquote>
<p>hier definiere ich doch ein array mit pointern zu funktionene. das array heiss call. der rueckgabe typ der funktionen ist bool und die funktionene erwarten als argumente zwei elemente (vom typ pair&lt;size_t, string&gt;)<br />
mit call[0] rufe ich original aus, call[1] = asc, call[2] = desc.<br />
rest noch nicht implementiert.<br />
falls nicht richtig bitte korigieren <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>danke!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619605</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Sun, 23 Nov 2008 19:44:03 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Mon, 24 Nov 2008 13:27:18 GMT]]></title><description><![CDATA[<p>hab es geschafft, das problem war dass beide funktionen sort geheissen haben...</p>
<p>alles laess ich kompilieren - sehr gut <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 />
nur testen laesst es sich noch nicht wie gewuncht, hier mein code:</p>
<pre><code class="language-cpp">#include &quot;lines.ih&quot;

int main()
{
   Lines line;

   cout &lt;&lt; &quot;Number o flines read: &quot; &lt;&lt; line.size() &lt;&lt; endl;

   for(size_t i = 0; i &lt; line.size(); ++i)
   		cout &lt;&lt; line.at(i) &lt;&lt; endl;

   //  line.sortLines(ASCENDING);  HIER MEIN PROBLEM
   cout &lt;&lt; &quot;Absteigend:\n&quot;;
   for(size_t i = 0; i &lt; line.size(); ++i)
   		cout &lt;&lt; line.at(i) &lt;&lt; endl;

   cout &lt;&lt; &quot;\nENDE&quot; &lt;&lt; endl;
   return 0;
}
</code></pre>
<p>nochmal die klasse selbst:</p>
<pre><code class="language-cpp">#ifndef _INCLUDED_LINES_
#define _INCLUDED_LINES_

#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;vector&gt;

typedef std::pair&lt;size_t, std::string&gt; Elements;

class Lines
{
   std::vector&lt;Elements &gt; d_allLines;
   size_t d_elementIdx;
   std::string d_empty;

    public:
        enum Type
        {
            ORIGINAL,
            ASCENDING,
            DESCENDING,
            CASE_ASCENDING,
            CASE_DESCENDING,
        };

        Lines();
        ~Lines();
        size_t size() const;
        void set(size_t idx, std::string const &amp;str);
        std::string const &amp;at(size_t idx) const;
        void sortLines(Type type);

    private:
        void read();
};

inline size_t Lines::size() const
{
    return d_allLines.size();
}

inline std::string const &amp;Lines::at(size_t idx) const
{
    return idx &lt; d_allLines.size() ? d_allLines.at(idx).second : d_empty;
}

#endif
</code></pre>
<p>wie uebergebe ich die art der sortierung, habe in der klasse eine public enum, nur schaff es nicht diese zu verwenden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>kann mir da jemand helfen?</p>
<p>danke...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619889</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Mon, 24 Nov 2008 13:27:18 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Mon, 24 Nov 2008 14:11:47 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">line.sortLines(Lines::ASCENDING);  // HIER WAR DEIN PROBLEM
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1619920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619920</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Mon, 24 Nov 2008 14:11:47 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Mon, 24 Nov 2008 16:33:34 GMT]]></title><description><![CDATA[<p>hmm was macht das :: genau??<br />
leuchtet mir nicht ganz ein, dachte irgendwie dass das Typ (name vom enum) vorkommen muesste...</p>
<p>und ein problem habe ich mit dem verkehrt sortieren:<br />
habe die funktionen folgendermassen implementiert:</p>
<pre><code class="language-cpp">bool ascending(const Elements&amp; left, const Elements&amp; right)
{  //sort the lines ascending
   return left.second &lt; right.second;
}

bool descending(const Elements&amp; left, const Elements&amp; right)
{  //sort the lines descending (inverted result from ascending)
   return -ascending(left, right);

}
</code></pre>
<p>hat nicht funktioniert, also habe ich es geaendert:</p>
<pre><code class="language-cpp">bool ascending(const Elements&amp; left, const Elements&amp; right)
{  //sort the lines ascending
   return left.second &lt; right.second;
}

bool descending(const Elements&amp; left, const Elements&amp; right)
{  //sort the lines descending 
   return left.second &gt; right.second;
}
</code></pre>
<p>so funktioniert es, ich verstehe aber nicht warum nicht auch die vorherige methode funktioniert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1620031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620031</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Mon, 24 Nov 2008 16:33:34 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Mon, 24 Nov 2008 17:01:41 GMT]]></title><description><![CDATA[<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>so funktioniert es, ich verstehe aber nicht warum nicht auch die vorherige methode funktioniert...</p>
</blockquote>
<p>Wie sieht der logische Negations-Operator aus? Nein, - ist es 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>
]]></description><link>https://www.c-plusplus.net/forum/post/1620055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620055</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 24 Nov 2008 17:01:41 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Mon, 24 Nov 2008 17:04:56 GMT]]></title><description><![CDATA[<p>hehe stimmt, bool sollte man schon mit ! negieren <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="😃"
    /><br />
danke!!<br />
nur noch die frage bezgl. der enum offen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1620058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620058</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Mon, 24 Nov 2008 17:04:56 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Mon, 24 Nov 2008 23:06:11 GMT]]></title><description><![CDATA[<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>hmm was macht das :: genau??<br />
leuchtet mir nicht ganz ein, dachte irgendwie dass das Typ (name vom enum) vorkommen muesste...</p>
</blockquote>
<p>Man kann damit auf verschiedene Scopes zugreifen. <code>Lines::ASCENDING</code> sagt dem Kompiler, dass er <code>ASCENDING</code> im Scope der Klasse <code>Lines</code> suchen soll, sonst weiss dieser nicht, was <code>ASCENDING</code> ist.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1620236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620236</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 24 Nov 2008 23:06:11 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Mon, 24 Nov 2008 23:10:39 GMT]]></title><description><![CDATA[<p>aha also so wie namespace std zum beispiel?</p>
<p>und da der typ in der klasse public ist kann ich daruaf zugreifen ohne ein element davon zu erzeugen?!<br />
das hat mich ein bisschen verwundert, denn normal mache ich ja von einer enum ein objekt (weiß nicht ob man hier objekt oder variable oder wwi sagt :D) welchem ich dann die verfuegbaren werte geben kann.</p>
<p>bp:</p>
<pre><code class="language-cpp">enum FARBE
{
  ROT,
  GELB,
  GRUEN
};

FARBE bla;

bla = ROT;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1620237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620237</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Mon, 24 Nov 2008 23:10:39 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Mon, 24 Nov 2008 23:18:36 GMT]]></title><description><![CDATA[<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>aha also so wie namespace std zum beispiel?<br />
und da der typ in der klasse public ist kann ich daruaf zugreifen ohne ein element davon zu erzeugen?!</p>
</blockquote>
<p>Genau.<br />
Das ist wie mit statischen Funktionen oder Variablen, die werden auch so aufgerufen. Oder Typen in der Klasse, seien sie nun enums, structs, classes oder simple typedefs.</p>
<p>AbsoluterBeginner schrieb:</p>
<blockquote>
<p>das hat mich ein bisschen verwundert, denn normal mache ich ja von einer enum ein objekt (weiß nicht ob man hier objekt oder variable oder wwi sagt :D) welchem ich dann die verfuegbaren werte geben kann.</p>
</blockquote>
<p>Ehm, ich ändere mal dein Beispiel etwas:</p>
<pre><code class="language-cpp">enum Type
{
  ORIGINAL,
  ASCENDING,
  DESCENDING,
  CASE_ASCENDING,
  CASE_DESCENDING,
};

// ...

Type type; // &lt;- Objekt erzeugen

type = Type::ASCENDING; // &lt;- ASCENDING muss hier nicht erzeugt werden,
                        //    der Wert existiert bereits.
</code></pre>
<p>Du übergibst ja die konstante <code>ASCENDING</code> , was im Funktionsparameter-Objekt vom Typ <code>enum Type</code> gespeichert wird.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1620240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620240</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 24 Nov 2008 23:18:36 GMT</pubDate></item><item><title><![CDATA[Reply to liste speicher reservieren und wieder freigeben on Mon, 24 Nov 2008 23:23:16 GMT]]></title><description><![CDATA[<p>hmm, du meinst der ganze code jetzt ausserhalb der klasse, also in meinem programm mit dem ich die klasse teste?</p>
<p>verstehs ned ganz sorry <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1620241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620241</guid><dc:creator><![CDATA[AbsoluterBeginner]]></dc:creator><pubDate>Mon, 24 Nov 2008 23:23:16 GMT</pubDate></item></channel></rss>