<?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[Probleme mit list]]></title><description><![CDATA[<p>Hallo!<br />
Ich habe vor kurzem begonnen mich mit STL zu beschäftigen. Und wollte damit nun einwenig rumspielen.<br />
Nun bin ich heute auf folgendes Problem gestoßen.<br />
Ich will die Objekte &quot;Teilchen&quot; mit einer Liste verwalten.<br />
Solange ich nur ein &quot;Teilchen&quot; in der Liste habe funktioniert es noch, aber sobald ich mehrere &quot;Teilchen&quot; drin habe, erhalte ich sehr merkwürdige ausgaben.<br />
Mit folgendem Code will ich die Liste beschreiben.</p>
<pre><code>int masse = rand();
int ladung = 1;

Vektor * ort;
ort = new Vektor(1,1,1);
Vektor * v1;
v1 = new Vektor(pi*1,pi*1,0);
cout &lt;&lt; &quot;Vektor 1: &quot;;
v1-&gt;get_Vek();
cout &lt;&lt; &quot;ort 1: &quot;;
ort-&gt;get_Vek();
Teilchen_list.push_back(Teilchen(masse,ladung, ort, v1));

masse = rand();
Vektor * ort2;
ort2 = new Vektor(2,2,2);
Vektor * v2;
v2 = new Vektor(pi*2,pi*2,0);
cout &lt;&lt; &quot;Vektor 2: &quot;;
v2-&gt;get_Vek();
cout &lt;&lt; &quot;ort 2: &quot;;
ort2-&gt;get_Vek();
Teilchen_list.push_back(Teilchen(masse,ladung, ort2, v2));

delete ort2;
delete v2;
delete ort;
delete v1;
</code></pre>
<p>Ich erhalte als Ausgabe:</p>
<blockquote>
<p>Vektor 1: Vektor: (3.14159,3.14159,0)<br />
ort 1: Vektor: (1,1,1)<br />
Vektor 2: Vektor: (6.28319,6.28319,0)<br />
ort 2: Vektor: (2,2,2)<br />
---<br />
Teilchen Position: Vektor: (6.28319,6.28319,0)<br />
Teilchen Geschwindigkeit: Vektor: (2,2,2)<br />
Teilchen Masse: 1173233298<br />
---<br />
Teilchen Position: Vektor: (2,2,2)<br />
Teilchen Geschwindigkeit: Vektor: (6.28319,6.28319,0)<br />
Teilchen Masse: 1270404533</p>
</blockquote>
<p>Irgendwie hat er Probleme mit dem ort und v1.<br />
Mein Objekt &quot;Teilchen&quot; hat folgende Größen:<br />
int masse;<br />
int ladung;<br />
Vektor * ort;<br />
Vektor * geschw;</p>
<p>Kann mir jemand sagen, was ich falsch gemacht habe?<br />
Vielen Dank im voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/208108/probleme-mit-list</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 13:44:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/208108.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Mar 2008 19:42:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit list on Fri, 14 Mar 2008 19:42:21 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Ich habe vor kurzem begonnen mich mit STL zu beschäftigen. Und wollte damit nun einwenig rumspielen.<br />
Nun bin ich heute auf folgendes Problem gestoßen.<br />
Ich will die Objekte &quot;Teilchen&quot; mit einer Liste verwalten.<br />
Solange ich nur ein &quot;Teilchen&quot; in der Liste habe funktioniert es noch, aber sobald ich mehrere &quot;Teilchen&quot; drin habe, erhalte ich sehr merkwürdige ausgaben.<br />
Mit folgendem Code will ich die Liste beschreiben.</p>
<pre><code>int masse = rand();
int ladung = 1;

Vektor * ort;
ort = new Vektor(1,1,1);
Vektor * v1;
v1 = new Vektor(pi*1,pi*1,0);
cout &lt;&lt; &quot;Vektor 1: &quot;;
v1-&gt;get_Vek();
cout &lt;&lt; &quot;ort 1: &quot;;
ort-&gt;get_Vek();
Teilchen_list.push_back(Teilchen(masse,ladung, ort, v1));

masse = rand();
Vektor * ort2;
ort2 = new Vektor(2,2,2);
Vektor * v2;
v2 = new Vektor(pi*2,pi*2,0);
cout &lt;&lt; &quot;Vektor 2: &quot;;
v2-&gt;get_Vek();
cout &lt;&lt; &quot;ort 2: &quot;;
ort2-&gt;get_Vek();
Teilchen_list.push_back(Teilchen(masse,ladung, ort2, v2));

delete ort2;
delete v2;
delete ort;
delete v1;
</code></pre>
<p>Ich erhalte als Ausgabe:</p>
<blockquote>
<p>Vektor 1: Vektor: (3.14159,3.14159,0)<br />
ort 1: Vektor: (1,1,1)<br />
Vektor 2: Vektor: (6.28319,6.28319,0)<br />
ort 2: Vektor: (2,2,2)<br />
---<br />
Teilchen Position: Vektor: (6.28319,6.28319,0)<br />
Teilchen Geschwindigkeit: Vektor: (2,2,2)<br />
Teilchen Masse: 1173233298<br />
---<br />
Teilchen Position: Vektor: (2,2,2)<br />
Teilchen Geschwindigkeit: Vektor: (6.28319,6.28319,0)<br />
Teilchen Masse: 1270404533</p>
</blockquote>
<p>Irgendwie hat er Probleme mit dem ort und v1.<br />
Mein Objekt &quot;Teilchen&quot; hat folgende Größen:<br />
int masse;<br />
int ladung;<br />
Vektor * ort;<br />
Vektor * geschw;</p>
<p>Kann mir jemand sagen, was ich falsch gemacht habe?<br />
Vielen Dank im voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1474514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1474514</guid><dc:creator><![CDATA[solarwind]]></dc:creator><pubDate>Fri, 14 Mar 2008 19:42:21 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit list on Fri, 14 Mar 2008 20:31:23 GMT]]></title><description><![CDATA[<p>Schau mal in Zeile 29 deines Quellcode-Listings. Da sollte dir was auffallen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1474545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1474545</guid><dc:creator><![CDATA[IchWeissEsBesser]]></dc:creator><pubDate>Fri, 14 Mar 2008 20:31:23 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit list on Fri, 14 Mar 2008 20:34:57 GMT]]></title><description><![CDATA[<p>sry, sehe nichts, da ist die funktion zu ende<br />
was habe ich übersehn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1474550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1474550</guid><dc:creator><![CDATA[solarwind]]></dc:creator><pubDate>Fri, 14 Mar 2008 20:34:57 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit list on Fri, 14 Mar 2008 21:00:54 GMT]]></title><description><![CDATA[<p>solarwind schrieb:</p>
<blockquote>
<p>Kann mir jemand sagen, was ich falsch gemacht habe?</p>
</blockquote>
<p>Jein. Deine Frage ist zu schwammig. Weiters wäre es gut, wenn Du Dein Problem auf ein Minimalbeispiel reduziert hättest (compilierbar) bei dem der Fehler auftritt und dazu eine Fehlerbeschreibung, die es offensichtlich macht, was du als Fehler ansiehst.</p>
<p>Dein Problem ist wahrscheinlich (Glaskugelmode ein ;)), dass du Pointer verwendest, wo sie nicht wirklich nötig sind und den copy-ctor von <code>Teilchen</code> nicht oder nicht richtig implementiert hast.</p>
<p>Hier mal ein Beispiel zum rumspielen:</p>
<pre><code class="language-cpp">#include &lt;ctime&gt; /* time( ) */
#include &lt;cstdlib&gt; /* rand( ) */

#define _USE_MATH_DEFINES /* Nicht Standard C++ */
#include &lt;cmath&gt; /* M_PI */

#include &lt;list&gt; /* std::list */
#include &lt;iostream&gt;

template&lt; typename T &gt;
class vector_r3_t {

	private:
		T m_x, m_y, m_z;

	public:
		const T &amp;x, &amp;y, &amp;z;

		vector_r3_t( ) : m_x( ), m_y( ), m_z( ), x( m_x ), y( m_y ), z( m_z ) { }
		vector_r3_t( T x, T y, T z ) : m_x( x ), m_y( y ), m_z( z ), x( m_x ), y( m_y ), z( m_z ) { }
};

template&lt; typename T &gt;
std::ostream&amp; operator&lt;&lt;( std::ostream &amp;output_stream, const vector_r3_t&lt; T &gt; &amp;object ) {

	return output_stream &lt;&lt; &quot;Vector: [ &quot; &lt;&lt; object.x &lt;&lt; &quot; | &quot; &lt;&lt; object.y &lt;&lt; &quot; | &quot; &lt;&lt; object.z &lt;&lt; &quot; ]&quot;;
}

template&lt; typename T &gt;
class particle_t {

	public:
		typedef T vector_t;

	private:
		double m_mass;
		bool m_charge;
		T m_position, m_heading;

	public:
		const double &amp;mass;
		const bool &amp;charge;
		const T &amp;position, &amp;heading;

		particle_t( ) :
			m_mass( ), m_charge( ), m_position( ), m_heading( ),
			mass( m_mass ), charge( m_charge ), position( m_position ), heading( m_heading )
		{ }

		particle_t( double mass, bool charge, const T &amp;position, const T &amp;heading ) :
			m_mass( mass ), m_charge( charge ), m_position( position ), m_heading( heading ),
			mass( m_mass ), charge( m_charge ), position( m_position ), heading( m_heading ) { }
};

template&lt; typename T &gt;
std::ostream&amp; operator&lt;&lt;( std::ostream &amp;output_stream, const particle_t&lt; T &gt; &amp;object ) {

	output_stream &lt;&lt; &quot;Mass: &quot; &lt;&lt; object.mass &lt;&lt; &quot;\nPolarity: &quot; &lt;&lt; ( object.charge ? &quot;positive\n&quot; : &quot;negative\n&quot; );
	return output_stream &lt;&lt; &quot;Position &quot; &lt;&lt; object.position &lt;&lt; &quot;\nHeading &quot; &lt;&lt; object.heading;
}

int main( ) {

	typedef particle_t&lt; vector_r3_t&lt; double &gt; &gt; particle_r3_t;
	typedef std::list&lt; particle_r3_t &gt; particle_r3_list_t;

	particle_r3_list_t particle_list;

    std::srand( static_cast&lt; unsigned int &gt;( std::time( 0 ) ) );

	particle_list.push_back( particle_r3_t( std::rand( ), true, particle_r3_t::vector_t( 1, 1, 1 ), particle_r3_t::vector_t( M_PI, M_PI, 0 ) ) );
	particle_list.push_back( particle_r3_t( std::rand( ), true, particle_r3_t::vector_t( 2, 2, 2 ), particle_r3_t::vector_t( M_PI * 2, M_PI * 2, 0 ) ) );
	particle_list.push_back( particle_r3_t( std::rand( ), true, particle_r3_t::vector_t( 3, 3, 3 ), particle_r3_t::vector_t( M_PI * 3, M_PI * 3, 0 ) ) );

	while( particle_list.size( ) ) {

		std::cout &lt;&lt; &quot;Particle:\n&quot; &lt;&lt; particle_list.front( ) &lt;&lt; &quot;\n&quot; &lt;&lt; std::endl;
		particle_list.pop_front( );
	}
}
</code></pre>
<p>greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1474561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1474561</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Fri, 14 Mar 2008 21:00:54 GMT</pubDate></item></channel></rss>