<?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[Hilfe ! Grundlagen der STL]]></title><description><![CDATA[<p>Hi,<br />
kann mir mal bitte einer sagen wo mein Denkfehler ist ?<br />
So funktioniert es bei mir leider nicht.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;list&gt;
#include &lt;vector&gt;

using namespace std;

typedef vector&lt;int&gt; vc;
vc::iterator vci;

int main()
{
	list&lt;vc&gt;test;
        test.push_back(vc);  //füge einen vector&lt;int&gt; Container ans Ende der Liste

	test.back().push_back(1);   // greife mit back() auf das letzte Element der Liste zu und füge in den Vector die Ziffer 1 in die erste Stelle

        int ch = test.back().*vci; // rufe den Vector aus dem  letztem Element von Test und gebe die erste Stelle des Vector's  aus

        cout &lt;&lt; ch;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/337157/hilfe-grundlagen-der-stl</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 10:02:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337157.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Mar 2016 21:59:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe ! Grundlagen der STL on Fri, 11 Mar 2016 21:59:09 GMT]]></title><description><![CDATA[<p>Hi,<br />
kann mir mal bitte einer sagen wo mein Denkfehler ist ?<br />
So funktioniert es bei mir leider nicht.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;list&gt;
#include &lt;vector&gt;

using namespace std;

typedef vector&lt;int&gt; vc;
vc::iterator vci;

int main()
{
	list&lt;vc&gt;test;
        test.push_back(vc);  //füge einen vector&lt;int&gt; Container ans Ende der Liste

	test.back().push_back(1);   // greife mit back() auf das letzte Element der Liste zu und füge in den Vector die Ziffer 1 in die erste Stelle

        int ch = test.back().*vci; // rufe den Vector aus dem  letztem Element von Test und gebe die erste Stelle des Vector's  aus

        cout &lt;&lt; ch;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2490048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2490048</guid><dc:creator><![CDATA[utass]]></dc:creator><pubDate>Fri, 11 Mar 2016 21:59:09 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe ! Grundlagen der STL on Fri, 11 Mar 2016 22:06:31 GMT]]></title><description><![CDATA[<p>Wie kommst du auf eine solche Zeile? Wenn man die Verschachtelung und typedefs mal weglässt würdest du doch auch nicht auf die Idee kommen per <code>vec.*std::vector&lt;int&gt;::iterator</code> auf ein Element in <code>vec</code> zuzugreifen. Du wolltest wohl einfach ein <code>test.back()[0]</code> .</p>
<p>Und bei dem <code>test.push_back(vc);</code> sollte <code>vc</code> wohl kein Typ sein sondern irgendwas das den Typ <code>vc</code> hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2490052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2490052</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Fri, 11 Mar 2016 22:06:31 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe ! Grundlagen der STL on Sat, 12 Mar 2016 20:15:10 GMT]]></title><description><![CDATA[<p>Danke Sebi707<br />
auch wenn deine Antwort nicht das ist was ich wollte, hast du mir weiter geholfen.<br />
Nun habe ich mein Verständnis für das Problem verbessert.<br />
Der Code sieht nun so aus.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;list&gt;
#include &lt;vector&gt;

using namespace std;

typedef vector&lt;int&gt; vc;

int main()
{   
	list&lt;vc&gt;test;

    test.push_back(vc());//füge einen vector&lt;int&gt; Container ans Ende der Liste

	test.back().push_back(5);// greife mit back() auf das letzte element der Liste zu und füge in den vector die Ziffer 5 in die erste Stelle

	cout&lt;&lt;*test.back().begin(); // rufe den vector aus dem  letzten element von Test und gebe die erste Stelle des vectors  aus
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2490160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2490160</guid><dc:creator><![CDATA[utass]]></dc:creator><pubDate>Sat, 12 Mar 2016 20:15:10 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe ! Grundlagen der STL on Sat, 12 Mar 2016 20:42:39 GMT]]></title><description><![CDATA[<p>Kann man natürlich machen. Es gibt übirgens auch eine <code>front</code> Funktion, die das Gegenstück zu <code>back</code> ist:</p>
<pre><code>cout&lt;&lt;test.back().front();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2490163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2490163</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sat, 12 Mar 2016 20:42:39 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe ! Grundlagen der STL on Sat, 12 Mar 2016 22:43:40 GMT]]></title><description><![CDATA[<p>jup ist mir bekannt aber ich will iterieren können und da ist mir begin() als erstes eingefallen.<br />
Hauptsächlich hab ich nur Versucht eine größeren anderen Code zu verstehen.<br />
Aber wie bereits erwähnt konntest Du mir ja dabei unter die Arme greifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2490169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2490169</guid><dc:creator><![CDATA[utass]]></dc:creator><pubDate>Sat, 12 Mar 2016 22:43:40 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe ! Grundlagen der STL on Sun, 13 Mar 2016 11:02:46 GMT]]></title><description><![CDATA[<p>kann mir jemand sagen warum ich das nicht zum laufen bekomme ? Ich verzweifel noch daran.</p>
<pre><code class="language-cpp">#include &lt;list&gt;
#include &lt;vector&gt;
#include &lt;iostream&gt;

typedef std::vector&lt;char&gt;Line;

//Iteration durch die Seite

class Text_iterator
{
public:

	Text_iterator(std::list&lt;Line&gt;::iterator II, Line::iterator pp) :IN(II), pos(pp) {}

	char&amp; operator*()
	{
		return *pos;
	}

	bool operator==(const Text_iterator&amp; other)const
	{
		return IN == other.IN &amp;&amp; pos == other.pos;
	}

	bool operator !=(const Text_iterator&amp; other)const
	{
		return !(*this == other);
	}

	Text_iterator&amp; operator++();

private:

	std::list&lt;Line&gt;::iterator IN;
	Line::iterator pos;
};

Text_iterator&amp; Text_iterator::operator++()
{
	++pos;
	if (pos == (*IN).end())
	{
		++IN;
		pos = (*IN).begin();
	}
	return *this;
}

struct Document {

	std::list&lt;Line&gt; line;
	Document() { line.push_back(Line()); std::cout &lt;&lt; &quot; Document erstellt &quot; &lt;&lt; std::endl; }

	Text_iterator begin()
	{
		return Text_iterator( line.begin(), (*line.begin()).begin()); 
	}

	Text_iterator end()
	{
		std::list&lt;Line&gt;::iterator last = line.end();
		--last;
		return Text_iterator( last, (*last).end());
	}

};

// Ausgabe --------------------------------------------------------------------------------------
void print(Document&amp; d)
{
	for (Text_iterator p = d.begin(); p != d.end(); ++p)std::cout &lt;&lt; *p;
}

// Einleseoperator-------------------------------------------------------------------------------
std::istream&amp; operator&gt;&gt;(std::istream&amp; is, Document&amp; d)
{
	char ch;
	while (is.get(ch))
	{
		d.line.back().push_back(ch);  //fuege ein Zeichen hinzu
		if (ch == '\n')
		{
			d.line.push_back(Line{});//fuege eine neue Zeile hinzu

		}

		if (d.line.back().size())
		{
			d.line.push_back(Line{}); // fuege abschließende leere Zeile ein
			return is;
		}
	}
}
</code></pre>
<pre><code class="language-cpp">int main()
{
	Document test;

	std::cout &lt;&lt; &quot;Hilfe &quot; &lt;&lt; std::endl;
	std::cin &gt;&gt; test;

	print(test);

	char ch;
	std::cin &gt;&gt; ch;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2490211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2490211</guid><dc:creator><![CDATA[utass]]></dc:creator><pubDate>Sun, 13 Mar 2016 11:02:46 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe ! Grundlagen der STL on Sun, 13 Mar 2016 11:27:57 GMT]]></title><description><![CDATA[<p>Was soll denn überhaupt passieren? So wie ich das sehe stimmt zumindest die Geschichte mit deinen Iteratoren, nur das Einlesen in deinem <code>operator&gt;&gt;</code> macht komische Sachen. Durch das <code>if (d.line.back().size())</code> bricht das Einlesen ab nachdem man irgendwas anderes als einen Zeilumbruch eingegeben hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2490213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2490213</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sun, 13 Mar 2016 11:27:57 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe ! Grundlagen der STL on Sun, 13 Mar 2016 11:52:21 GMT]]></title><description><![CDATA[<p>Danke Danke Du bist wieder mal mein Retter.<br />
Da sieht man mal wieder, so länger man über Code nachdenkt des so eher übersieht man fehlerhafte Zeichensetzung.<br />
So ist es gedacht.</p>
<pre><code class="language-cpp">std::istream&amp; operator&gt;&gt;(std::istream&amp; is, Document&amp; d)
{
	char ch;
	while (is.get(ch))
	{
		d.line.back().push_back(ch);  //fuege ein Zeichen hinzu

		if (ch == '\n')
			d.line.push_back(Line{});//fuege eine neue Zeile hinzu
	}

		if (d.line.back().size())
		    d.line.push_back(Line{}); // fuege abschließende leere Zeile ein

		return is;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2490215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2490215</guid><dc:creator><![CDATA[utass]]></dc:creator><pubDate>Sun, 13 Mar 2016 11:52:21 GMT</pubDate></item></channel></rss>