<?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[abstrakte Strukturen und STL-List]]></title><description><![CDATA[<p>Guten Abend,</p>
<p>ich habe 2 Probleme die ich gerne mit eurer Unterstüzung lösen möchte.</p>
<p>Anliegen: 1) Ich habe eine Aufgabenstellung umgesetzt und würde gerne wissen ob ich dabei einen Fehler gemacht habe.<br />
Anliegen: 2) Mein zweites Anliegen resultiert aus meinem ersten Anliegen und wird weiter unten erwähnt.</p>
<p>zum Erstens:</p>
<p>Definieren Sie in einen Datentyp article, bestehend aus einer Bezeichnung und einem Preis.</p>
<pre><code class="language-cpp">// arti.h

struct article
{
	char* bezeichnung;						
	int* preis;							

	article* pred;		// Predecessor == Vorgänger - article
	article* succ;		// Successor == Nachfolger - article
};
</code></pre>
<p>Definieren Sie mindestens einen weiteren Datentyp other_articles, der die Einkaufsliste eines Familienmitglieds repräsentiert.</p>
<pre><code class="language-cpp">struct other_articles						
{
	article* First;		// Zeigt auf den ersten Artikel
	article* Last;		// Zeigt auf den letzten Artikel
};
</code></pre>
<p>Definieren Sie ferner einen Datentyp member, der alle Daten zu einem Familienmitglied (Vorname, Alter, Einkaufsliste) halten kann.</p>
<pre><code class="language-cpp">struct member
{
	char* first_name;
	char* sex;

	other_articles* buy_list;

	article* pred;
	article* succ;
};
</code></pre>
<p>Definieren Sie schließlich noch eine geeignete Struktur member_list zur Aufbewahrung der Daten aller Familienmitglieder.</p>
<pre><code class="language-cpp">struct member_list
{
	member* First;
	member* Last;
};
</code></pre>
<p>Wie man sehen kann, versuche ich diese Strukturen in einer doppelt verketteten Liste zu speichern.<br />
Habe ich mit dieser Deklaration den Anspruch der Aufgabe erfüllt? Ich habe bedenken ob die letzten beiden Strukturen auch wie gofrdert deklariert wurden oder ob es auch eine weitere Möglichkeit der Umsetzung gibt.</p>
<p>Mein zweites Anliegen dreht sich um den Zugriff auf die Strukturen über die STL-Fuktionen, die ich im übrigen als eine enorme Vereinfachung zu schätzen gelernt habe.</p>
<p>Die strukturen wurden extern global zugängig gemacht.</p>
<pre><code class="language-cpp">extern article artikel;
extern other_article weitere_dinge;
extern member mitglied;
extern member_list mitglieder_liste;
</code></pre>
<p>Doch wie kann ich nun auf die einzelnen Elemente zugreifen?<br />
Momentan habe ich unwissentlich gearten und fesgestellt das dies nicht zum Ziel führt.</p>
<pre><code class="language-cpp">list&lt;other_article*&gt; weitere_dinge;

weitere_dinge.
</code></pre>
<p>Kann mir wer helfend zur Hand gehen und seine Bedenken äußern?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/199109/abstrakte-strukturen-und-stl-list</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 12:17:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/199109.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Nov 2007 00:45:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to abstrakte Strukturen und STL-List on Thu, 29 Nov 2007 00:45:46 GMT]]></title><description><![CDATA[<p>Guten Abend,</p>
<p>ich habe 2 Probleme die ich gerne mit eurer Unterstüzung lösen möchte.</p>
<p>Anliegen: 1) Ich habe eine Aufgabenstellung umgesetzt und würde gerne wissen ob ich dabei einen Fehler gemacht habe.<br />
Anliegen: 2) Mein zweites Anliegen resultiert aus meinem ersten Anliegen und wird weiter unten erwähnt.</p>
<p>zum Erstens:</p>
<p>Definieren Sie in einen Datentyp article, bestehend aus einer Bezeichnung und einem Preis.</p>
<pre><code class="language-cpp">// arti.h

struct article
{
	char* bezeichnung;						
	int* preis;							

	article* pred;		// Predecessor == Vorgänger - article
	article* succ;		// Successor == Nachfolger - article
};
</code></pre>
<p>Definieren Sie mindestens einen weiteren Datentyp other_articles, der die Einkaufsliste eines Familienmitglieds repräsentiert.</p>
<pre><code class="language-cpp">struct other_articles						
{
	article* First;		// Zeigt auf den ersten Artikel
	article* Last;		// Zeigt auf den letzten Artikel
};
</code></pre>
<p>Definieren Sie ferner einen Datentyp member, der alle Daten zu einem Familienmitglied (Vorname, Alter, Einkaufsliste) halten kann.</p>
<pre><code class="language-cpp">struct member
{
	char* first_name;
	char* sex;

	other_articles* buy_list;

	article* pred;
	article* succ;
};
</code></pre>
<p>Definieren Sie schließlich noch eine geeignete Struktur member_list zur Aufbewahrung der Daten aller Familienmitglieder.</p>
<pre><code class="language-cpp">struct member_list
{
	member* First;
	member* Last;
};
</code></pre>
<p>Wie man sehen kann, versuche ich diese Strukturen in einer doppelt verketteten Liste zu speichern.<br />
Habe ich mit dieser Deklaration den Anspruch der Aufgabe erfüllt? Ich habe bedenken ob die letzten beiden Strukturen auch wie gofrdert deklariert wurden oder ob es auch eine weitere Möglichkeit der Umsetzung gibt.</p>
<p>Mein zweites Anliegen dreht sich um den Zugriff auf die Strukturen über die STL-Fuktionen, die ich im übrigen als eine enorme Vereinfachung zu schätzen gelernt habe.</p>
<p>Die strukturen wurden extern global zugängig gemacht.</p>
<pre><code class="language-cpp">extern article artikel;
extern other_article weitere_dinge;
extern member mitglied;
extern member_list mitglieder_liste;
</code></pre>
<p>Doch wie kann ich nun auf die einzelnen Elemente zugreifen?<br />
Momentan habe ich unwissentlich gearten und fesgestellt das dies nicht zum Ziel führt.</p>
<pre><code class="language-cpp">list&lt;other_article*&gt; weitere_dinge;

weitere_dinge.
</code></pre>
<p>Kann mir wer helfend zur Hand gehen und seine Bedenken äußern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411958</guid><dc:creator><![CDATA[MarcR]]></dc:creator><pubDate>Thu, 29 Nov 2007 00:45:46 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Strukturen und STL-List on Thu, 29 Nov 2007 07:01:00 GMT]]></title><description><![CDATA[<p>Zu erstens: Ich würde etwas sparsamer mit Zeigern umgehen - statt char* lieber std::string, und int ist klein genug, um es direkt zu speichern. Außerdem würde ich die Grundklassen und die Verwaltungscontainer voneinander trennen (und Standard-Container nutzen:</p>
<pre><code class="language-cpp">struct article
{
  string bezeichnung;
  int preis;
};

typedef list&lt;article&gt; other_articles;
</code></pre>
<p>Zu zweitens: Was willst du damit erreichen, daß du von jedem Datentyp genau eine Variable deklarierst (außer Linker-Fehlern beim Versuch, sie zu verwenden)? Definier dir deine Variablen dort, wo du sie auch benötigst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411978</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 29 Nov 2007 07:01:00 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Strukturen und STL-List on Thu, 29 Nov 2007 16:23:06 GMT]]></title><description><![CDATA[<p>Guten Tag.</p>
<p>Ich danke für die Unterstützung. Aufbauend auf den Vorschlag implementierte ich eine Funktion zum hinzfügen eines Eintrages.</p>
<pre><code class="language-cpp">// Header.Datei
struct article
{
  string bezeichnung;
  int preis;
};

list&lt;article&gt; other_articles;

// cpp.datei

void f(article&amp; test, list&lt;article&gt;::iterator i, list&lt;article&gt;::iterator p)
{

	 other_articles.push_back(test);

};

extern void f(article&amp; test, list&lt;article&gt;::iterator i, list&lt;article&gt;::iterator p)
</code></pre>
<p>Versuche ein Element hinten anzufügen, bemängelt der Compiler ein bereits definiertes Ovjekt in der Class main. Obwohl wie eben geschrieben die externen Funktionen angewandt worden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412412</guid><dc:creator><![CDATA[MarcR]]></dc:creator><pubDate>Thu, 29 Nov 2007 16:23:06 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Strukturen und STL-List on Thu, 29 Nov 2007 17:28:12 GMT]]></title><description><![CDATA[<p>In Header-Dateien darfst du keine Variablen definieren (d.h. Speicherplatz dafür reservieren lassen, denn so hast du jetzt zwei Variablen mit gleichem Namen in zwei verschiedenen Übersetzungseinheiten und dann sagt der Linker: 'doppelte Definition von ...').</p>
<p>Abhilfe schafft die Deklaration der Variablen in der Header-Datei:</p>
<pre><code class="language-cpp">// articles.h
#include &lt;list&gt;

extern std::list&lt;article&gt; other_articles;
</code></pre>
<p>'extern' bedeutet einfach, daß die Variable irgendwo anders definiert ist und der Linker sie dann finden muß.</p>
<p>Und in genau einer Übersetzungseinheit (C++ Source-Datei) mußt du dann diese Variable definieren:</p>
<pre><code class="language-cpp">// articles.cpp
[cpp]
#include &quot;articles.h&quot;

std::list&lt;article&gt; other_articles;
</code></pre>
<p>Da du noch ein Anfänger bist, lasse ich bei dir mal globale Variablen durchgehen, aber normalerweise sollte man sowenig globale Variablen wie möglich benutzen.<br />
Und auch ein &quot;using namespace std;&quot; solltest du nur (wenn überhaupt) in C++ Soruce-Dateien vornehmen (NIEMALS in Header-Dateien), d.h. möglichst den Namensbereich immer explizit mit angeben (z.B. std::).<br />
Für einen Anfänger mag das zwar noch nicht so wichtig sein (und vllt. etwas unleserlicher erscheinen), aber du wirst mir danken, wenn du irgenwann mal größere Projekte in Angriff nimmst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412465</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Thu, 29 Nov 2007 17:28:12 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Strukturen und STL-List on Thu, 29 Nov 2007 17:55:47 GMT]]></title><description><![CDATA[<p>Danke für den Hinweis und den Ratschlag. Ich werde dieses nun zukünftig mehr berücksichtigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412487</guid><dc:creator><![CDATA[MarcR]]></dc:creator><pubDate>Thu, 29 Nov 2007 17:55:47 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Strukturen und STL-List on Thu, 29 Nov 2007 21:06:46 GMT]]></title><description><![CDATA[<blockquote>
<p>Definieren Sie in einen Datentyp article, bestehend aus einer Bezeichnung und einem Preis.</p>
<pre><code class="language-cpp">// arti.h

struct article
{
    char* bezeichnung;                       
    int* preis;                           
   
    article* pred;        // Predecessor == Vorgänger - article
    article* succ;        // Successor == Nachfolger - article
};
</code></pre>
</blockquote>
<pre><code class="language-cpp">struct article
{
    char* name;                       
    unsigned long price; // in ct (in € =&gt; double)     
    article(const char* name, unsigned long price) : name(new char[std::strlen(name) + 1]), price(price) { std::strcpy(this-&gt;name, name); }
    ~article() { delete [] name; }        
};
</code></pre>
<p>wäre eine denkbare Umsetzung, wobei ich unter dem, was der Aufgabenstelle geschrieben hat, eher sowas verstehe:</p>
<pre><code class="language-cpp">typedef std::pair&lt;std::string, unsigned long&gt; article;
</code></pre>
<p>...</p>
<blockquote>
<p>Definieren Sie mindestens einen weiteren Datentyp other_articles, der die Einkaufsliste eines Familienmitglieds repräsentiert.</p>
</blockquote>
<pre><code class="language-cpp">typedef std::list &lt;article&gt; other_articles;
</code></pre>
<blockquote>
<p>Definieren Sie ferner einen Datentyp member, der alle Daten zu einem Familienmitglied (Vorname, Alter, Einkaufsliste) halten kann.</p>
</blockquote>
<pre><code class="language-cpp">struct family_member : public person, public family
{
    std::pair&lt;std::string, std::string&gt; name;
    char sex;
    other_articles shopping_list;
};
</code></pre>
<p>...</p>
<p>Insgesamt sind die Aufgaben relativ miserabel gestellt ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412600</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 29 Nov 2007 21:06:46 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Strukturen und STL-List on Fri, 30 Nov 2007 14:01:38 GMT]]></title><description><![CDATA[<p>Ist 'sex' jetzt das Alter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412942</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Fri, 30 Nov 2007 14:01:38 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Strukturen und STL-List on Fri, 30 Nov 2007 14:16:06 GMT]]></title><description><![CDATA[<p>Sex ist das Geschlecht. Noch nie auf deinen Perso geschaut? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Mich erstaunt eher, das ein Familienmitglied eine Familie sein soll? <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412952</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Fri, 30 Nov 2007 14:16:06 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Strukturen und STL-List on Fri, 30 Nov 2007 15:06:55 GMT]]></title><description><![CDATA[<blockquote>
<p>Mich erstaunt eher, das ein Familienmitglied eine Familie sein soll? <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=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Hmm stimmt hab jetzt da eine IST-Beziehung aufgebaut, sollte eine &quot;TEIL-VON&quot;-Beziehung werden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413009</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Fri, 30 Nov 2007 15:06:55 GMT</pubDate></item></channel></rss>