<?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[Verschachtelter Vektor]]></title><description><![CDATA[<p>Hallo liebes Forum,</p>
<p>ich bin neu hier und stehe mal wieder vor einem Problem, bei dem ich nicht weiter weiß. Ich habe schon einiges durchsucht hier und auch über google, aber leider konnte ich nirgends verstehen, wie es funktioniert.</p>
<p>Ich möchte folgendes erreichen:</p>
<p>Ein Nutzer soll eine Liste von Personen mit Daten zu diesen Personen anlegen können. Jede Person soll in einem Vektor stehen. Also z.B. einem Vektor mit 4 Einträgen für Name, Vorname, Alter und Geschlecht. All diese Personen sollen wieder in einen Vektor geschrieben werden, so dass ich auf diese verschachtelten Vektoren zugreifen kann.</p>
<p>Somit habe ich versucht, einen int-Vektor (PersonenID) und einen string-Vektor (Daten) zu verschachteln. Wie das geht, habe ich gelesen:</p>
<pre><code class="language-cpp">vector&lt;vektor&lt;string&gt; &gt; Eigenschaft;
</code></pre>
<p>Leider verstehe ich nicht, wie ich dann z.B. Person 1 hinzufügen kann. Und dann Person 2 etc</p>
<p>Ich habe mir dann damit abgeholfen, zwei Vektoren einzeln zu erstellen:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;string&gt;
#include&lt;vector&gt;

using namespace std;

vector&lt;int&gt; Person;	
vector&lt;string&gt; Eigenschaft;

// Funktion zur Datenaufnahme deklarieren

void NeuePerson(string name, string vorname, string alter, string geschlecht) {

int anzahl;

anzahl = Person.size();

		Eigenschaft.push_back(name);
		Eigenschaft.push_back(vorname);
		Eigenschaft.push_back(alter);
		Eigenschaft.push_back(geschlecht);

		Person.push_back(anzahl);
}

int main() {

	cout &lt;&lt; &quot;Herzlich Willkommen zum Personenspeicher!&quot; &lt;&lt; endl;

	cout &lt;&lt; &quot;Dieses Programm kann Personen mit folgenden Daten speichern: Name, Vorname, Alter und Geschlecht&quot; &lt;&lt; endl;	

	string a;
	string b;
	string c;
	string d;

	cout &lt;&lt; &quot;Bitte geben Sie die folgenden Daten ein:&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Name: &quot;;
	cin &gt;&gt; a;
	cout &lt;&lt; &quot;Vorname: &quot;;
	cin &gt;&gt; b;
	cout &lt;&lt; &quot;Alter: &quot;;
	cin &gt;&gt; c;
	cout &lt;&lt; &quot;Geschlecht: &quot;;
	cin &gt;&gt; d;

	NeuePerson(a, b, c, d);

	cout &lt;&lt; Person.size() &lt;&lt; Eigenschaft.size() &lt;&lt; endl;

	cin &gt;&gt; a;

	return 0;
}
</code></pre>
<p>Hat mich logischerweise nicht wirklich weiter gebracht.</p>
<p>Kann mir jmd helfen?</p>
<p>Viele Grüße</p>
<p>Tobias</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304378/verschachtelter-vektor</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 17:37:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304378.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Jun 2012 23:03:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verschachtelter Vektor on Mon, 04 Jun 2012 23:03:23 GMT]]></title><description><![CDATA[<p>Hallo liebes Forum,</p>
<p>ich bin neu hier und stehe mal wieder vor einem Problem, bei dem ich nicht weiter weiß. Ich habe schon einiges durchsucht hier und auch über google, aber leider konnte ich nirgends verstehen, wie es funktioniert.</p>
<p>Ich möchte folgendes erreichen:</p>
<p>Ein Nutzer soll eine Liste von Personen mit Daten zu diesen Personen anlegen können. Jede Person soll in einem Vektor stehen. Also z.B. einem Vektor mit 4 Einträgen für Name, Vorname, Alter und Geschlecht. All diese Personen sollen wieder in einen Vektor geschrieben werden, so dass ich auf diese verschachtelten Vektoren zugreifen kann.</p>
<p>Somit habe ich versucht, einen int-Vektor (PersonenID) und einen string-Vektor (Daten) zu verschachteln. Wie das geht, habe ich gelesen:</p>
<pre><code class="language-cpp">vector&lt;vektor&lt;string&gt; &gt; Eigenschaft;
</code></pre>
<p>Leider verstehe ich nicht, wie ich dann z.B. Person 1 hinzufügen kann. Und dann Person 2 etc</p>
<p>Ich habe mir dann damit abgeholfen, zwei Vektoren einzeln zu erstellen:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;string&gt;
#include&lt;vector&gt;

using namespace std;

vector&lt;int&gt; Person;	
vector&lt;string&gt; Eigenschaft;

// Funktion zur Datenaufnahme deklarieren

void NeuePerson(string name, string vorname, string alter, string geschlecht) {

int anzahl;

anzahl = Person.size();

		Eigenschaft.push_back(name);
		Eigenschaft.push_back(vorname);
		Eigenschaft.push_back(alter);
		Eigenschaft.push_back(geschlecht);

		Person.push_back(anzahl);
}

int main() {

	cout &lt;&lt; &quot;Herzlich Willkommen zum Personenspeicher!&quot; &lt;&lt; endl;

	cout &lt;&lt; &quot;Dieses Programm kann Personen mit folgenden Daten speichern: Name, Vorname, Alter und Geschlecht&quot; &lt;&lt; endl;	

	string a;
	string b;
	string c;
	string d;

	cout &lt;&lt; &quot;Bitte geben Sie die folgenden Daten ein:&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Name: &quot;;
	cin &gt;&gt; a;
	cout &lt;&lt; &quot;Vorname: &quot;;
	cin &gt;&gt; b;
	cout &lt;&lt; &quot;Alter: &quot;;
	cin &gt;&gt; c;
	cout &lt;&lt; &quot;Geschlecht: &quot;;
	cin &gt;&gt; d;

	NeuePerson(a, b, c, d);

	cout &lt;&lt; Person.size() &lt;&lt; Eigenschaft.size() &lt;&lt; endl;

	cin &gt;&gt; a;

	return 0;
}
</code></pre>
<p>Hat mich logischerweise nicht wirklich weiter gebracht.</p>
<p>Kann mir jmd helfen?</p>
<p>Viele Grüße</p>
<p>Tobias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219514</guid><dc:creator><![CDATA[PuraVida]]></dc:creator><pubDate>Mon, 04 Jun 2012 23:03:23 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 00:36:44 GMT]]></title><description><![CDATA[<p>Mit verschachtelten Vektoren würde das ungefähr so gehen:</p>
<pre><code class="language-cpp">vector&lt;vector&lt;string&gt; &gt; personen;

vector&lt;string&gt; person;
person.push_back(name);
person.push_back(vorname);
person.push_back(alter);
person.push_back(geschlecht);

personen.push_back(person);
</code></pre>
<p>Die Personen durch einen vector&lt;string&gt; zu repräsentieren ist aber Unfug - dafür hat man schließlich Klassen geschaffen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219522</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Tue, 05 Jun 2012 00:36:44 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 10:11:52 GMT]]></title><description><![CDATA[<p>Nimm leiber eine <code>map</code></p>
<p>Die Nutzung sähe so aus:</p>
<pre><code class="language-cpp">std::map&lt;int, User&gt; personen;    //Der int-Wert wäre deine ID, User wäre eine Klasse mit allen Daten

personen[56] = User(/*hier dann die Infos*/);
</code></pre>
<p>Das funktioniert auch, wenn z.B. die Id 56 noch nicht belegt ist.<br />
Und so kannst du auch id-Lücken haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219647</guid><dc:creator><![CDATA[Die erinnerung]]></dc:creator><pubDate>Tue, 05 Jun 2012 10:11:52 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 10:50:05 GMT]]></title><description><![CDATA[<p>Du könntest dir auch eine Klasse Human basteln. Wär viel schöner. <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>gruß<br />
syntax</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219668</guid><dc:creator><![CDATA[Syntax_error]]></dc:creator><pubDate>Tue, 05 Jun 2012 10:50:05 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 12:10:34 GMT]]></title><description><![CDATA[<p>PuraVida schrieb:</p>
<blockquote>
<p>Jede Person soll in einem Vektor stehen. Also z.B. einem Vektor mit 4 Einträgen für Name, Vorname, Alter und Geschlecht.</p>
</blockquote>
<p>Nein sollte sie nicht. Eine Person ist eine Person, nicht eine Reihe von Strings. Zumal ein Alter keine Zeichenkette ist, ein Geschlecht auch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219722</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 05 Jun 2012 12:10:34 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 13:57:23 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Zumal ein Alter keine Zeichenkette ist, ein Geschlecht auch nicht.</p>
</blockquote>
<p>Was wäre den bei dir Alter und Geschlecht, pumuckl?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219792</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 05 Jun 2012 13:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 14:05:28 GMT]]></title><description><![CDATA[<p>Gugelmoser schrieb:</p>
<blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>Zumal ein Alter keine Zeichenkette ist, ein Geschlecht auch nicht.</p>
</blockquote>
<p>Was wäre den bei dir Alter und Geschlecht, pumuckl?</p>
</blockquote>
<p>naheliegend für das Alter wäre für mich ein unsigned int, sofern &quot;einfache&quot; Altersangaben in Form von Lebensjahren genügen. Für das Geschlecht würde ich wohl ein kleines enum erstellen.</p>
<p>Natürlich kann man beides als string speichern, das zieht nur einen ewigen Rattenschwanz an Fehlerbehandlungen mit sich und sorgt nicht gerade für ein leichtes Verständnis des Codes.</p>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219801</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 05 Jun 2012 14:05:28 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 14:08:45 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>Für das Geschlecht würde ich wohl ein kleines enum erstellen.</p>
</blockquote>
<p>Jup, würde ich auch nehmen.</p>
<p>daddy_felix schrieb:</p>
<blockquote>
<p>naheliegend für das Alter wäre für mich ein unsigned int, sofern &quot;einfache&quot; Altersangaben in Form von Lebensjahren genügen.</p>
</blockquote>
<p>Das würde ich nicht nehmen, oder was willst du mit einem Alter rechnen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219808</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 05 Jun 2012 14:08:45 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 14:10:31 GMT]]></title><description><![CDATA[<p>Gugelmoser schrieb:</p>
<blockquote>
<p>daddy_felix schrieb:</p>
<blockquote>
<p>naheliegend für das Alter wäre für mich ein unsigned int, sofern &quot;einfache&quot; Altersangaben in Form von Lebensjahren genügen.</p>
</blockquote>
<p>Das würde ich nicht nehmen, oder was willst du mit einem Alter rechnen?</p>
</blockquote>
<p>am Geburtstag inkrementieren <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/2219810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219810</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 05 Jun 2012 14:10:31 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 14:10:18 GMT]]></title><description><![CDATA[<p>Gugelmoser schrieb:</p>
<blockquote>
<p>daddy_felix schrieb:</p>
<blockquote>
<p>naheliegend für das Alter wäre für mich ein unsigned int, sofern &quot;einfache&quot; Altersangaben in Form von Lebensjahren genügen.</p>
</blockquote>
<p>Das würde ich nicht nehmen, oder was willst du mit einem Alter rechnen?</p>
</blockquote>
<p>Mit einem Alter kann man schon sinnvolle Rechnungen machen, daher ist ein arithmetischer Typ hier absolut naheliegend.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219811</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 05 Jun 2012 14:10:18 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 14:12:20 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Gugelmoser schrieb:</p>
<blockquote>
<p>daddy_felix schrieb:</p>
<blockquote>
<p>naheliegend für das Alter wäre für mich ein unsigned int, sofern &quot;einfache&quot; Altersangaben in Form von Lebensjahren genügen.</p>
</blockquote>
<p>Das würde ich nicht nehmen, oder was willst du mit einem Alter rechnen?</p>
</blockquote>
<p>Mit einem Alter kann man schon sinnvolle Rechnungen machen, daher ist ein arithmetischer Typ hier absolut naheliegend.</p>
</blockquote>
<p>Ok, für mich wäre das jetzt das Gleiche, wie mit einer PLZ gewesen. Und was fallen dir da für sinnvolle Rechnugnen ein, SeppJ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219815</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 05 Jun 2012 14:12:20 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 14:15:08 GMT]]></title><description><![CDATA[<p>Gugelmoser schrieb:</p>
<blockquote>
<p>Was wäre den bei dir Alter und Geschlecht, pumuckl?</p>
</blockquote>
<p>Geschlecht das angesprochene Enum, Alter je nach Bedarf ein unsigned int/unsigned long (unterschieliche Semantik denkbar: Jahre, Tage (echt oder Geschäftstage á 30 Tage/Monat), Sekunden?) oder auch eine eigene Datumsklasse.</p>
<p>Gugelmoser schrieb:</p>
<blockquote>
<p>Das würde ich nicht nehmen, oder was willst du mit einem Alter rechnen?</p>
</blockquote>
<p>Ich schreibe Software für die Lebensversicherungsbranche - da ist das Alter der Versicherten Personen eine der wichtigsten Rechengrundlagen <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/2219820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219820</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 05 Jun 2012 14:15:08 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 15:20:44 GMT]]></title><description><![CDATA[<p>Gugelmoser schrieb:</p>
<blockquote>
<p>Ok, für mich wäre das jetzt das Gleiche, wie mit einer PLZ gewesen. Und was fallen dir da für sinnvolle Rechnugnen ein, SeppJ?</p>
</blockquote>
<p>Wie alt jemand in 3 Jahren ist. Wie groß der Altersunterschied zweier Personen ist. Wann jemand doppelt so alt ist wie jetzt. In wie vielen Jahren jemand 65 wird. Wer von zwei Personen jünger ist. Wie lange jemand schon volljährig ist. Soll ich weitermachen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219866</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 05 Jun 2012 15:20:44 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 15:49:27 GMT]]></title><description><![CDATA[<p>Gugelmoser schrieb:</p>
<blockquote>
<p>Ok, für mich wäre das jetzt das Gleiche, wie mit einer PLZ gewesen. Und was fallen dir da für sinnvolle Rechnugnen ein, SeppJ?</p>
</blockquote>
<p>Die PLZ ist keine Zahl, da...<br />
a) Führende Nullen zulässig sind<br />
b) Wenn man andere Länder berücksichtigt ggf. auch Buchstaben zulässig sind.</p>
<p>Dennoch halte ich bei eindeutig nummerischen Werten wie dem Alter (wobei ich eher den Geburtstag speichern, und das Alter herleiten würde), das man auch Nummern verwendet. Und sei es alleine schon, um die Eingaben auf gültige Werte einzuschränken. Man sollte nicht einfach alles als Strings behandeln, wenn andere Datentypen geeigneter sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219884</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 05 Jun 2012 15:49:27 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelter Vektor on Tue, 05 Jun 2012 17:56:12 GMT]]></title><description><![CDATA[<p>Was wäre denn die alternative zu einem numerischen Typ?</p>
<p><code>boost::posix_time::time_duration</code> oder Vergleichbares könnte ich mir noch vorstellen.<br />
Ist aber auch bloss ein gewrappter &quot;int&quot;, bei dem halt nur die Operationen angeboten werden die Sinn machen.<br />
Wobei das schon wieder lästig werden könnte, sobald man irgendwo die Varianz/Standardabweichung o.ä. ausrechnen will.</p>
<p>Stellen sich folgende Fragen:</p>
<ol>
<li>Was gewinnt man durch eine Wrapperklasse?</li>
<li>Was kostet es die Wrapperklasse zu erstellen? (u.U. nix, wenn man was fertiges nimmt)</li>
<li>Was kostet es die Wrapperklasse zu verwenden? (u.U. viel, nämlich wenn man dann dauernd explizit rumkonvertieren muss)</li>
</ol>
<p>Dann kommt man zu dem Ergebnis dass es sich nicht auszahlt, und lässt es bleiben. Und steckt das Alter stattdessen in nen std::string, weil's ja sowieso immer nur eingegeben und ausgegeben wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219929</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 05 Jun 2012 17:56:12 GMT</pubDate></item></channel></rss>