<?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[Boost ptr_vector Elemente löschen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein problem mit dem ptr_vector aus boost. Mein vorgehen war folgendes:</p>
<p>Ich habe eine test klasse angelegt, diese verwendet, und das ganze dann mit valgrind auf speicherfehler getestet. Valgrind hat ein problem festgestellt, welches im destructor meiner test klasse ist, und zwar bei erase() vom ptr_vector.</p>
<p>Kann mir bitte jemand sagen, was ich da falsch gemacht habe? Ich dachte eigentlich, ich hätte nach bestem wissen und gewissen meine objekte angelegt und dann im destructor wieder zerstört.</p>
<p>Danke!</p>
<pre><code class="language-cpp">class TestClass
{
	private:
		typedef boost::ptr_vector&lt;MyObject&gt; MyObjectVector;

	public:
		[...]
		virtual ~TestClass();

		void runTestClass();

	private:
		void addObject(MyObject *obj);

		MyObjectVector p_my_object_vector;
}

TestClass::runTestClass()
{
	addObject(new MyObject(1));
	addObject(new MyObject(2));
	addObject(new MyObject(3));
	addObject(new MyObject(4));
	addObject(new MyObject(5));
}

TestClass::addObject(MyObject *obj)
{
	p_my_object_vector.push_back(obj);
}

TestClass::~TestClass()
{
	p_my_object_vector.erase(p_my_object_vector.begin(), p_my_object_vector.end());
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/305142/boost-ptr_vector-elemente-löschen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 03:12:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305142.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Jun 2012 06:36:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Boost ptr_vector Elemente löschen on Fri, 22 Jun 2012 06:36:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein problem mit dem ptr_vector aus boost. Mein vorgehen war folgendes:</p>
<p>Ich habe eine test klasse angelegt, diese verwendet, und das ganze dann mit valgrind auf speicherfehler getestet. Valgrind hat ein problem festgestellt, welches im destructor meiner test klasse ist, und zwar bei erase() vom ptr_vector.</p>
<p>Kann mir bitte jemand sagen, was ich da falsch gemacht habe? Ich dachte eigentlich, ich hätte nach bestem wissen und gewissen meine objekte angelegt und dann im destructor wieder zerstört.</p>
<p>Danke!</p>
<pre><code class="language-cpp">class TestClass
{
	private:
		typedef boost::ptr_vector&lt;MyObject&gt; MyObjectVector;

	public:
		[...]
		virtual ~TestClass();

		void runTestClass();

	private:
		void addObject(MyObject *obj);

		MyObjectVector p_my_object_vector;
}

TestClass::runTestClass()
{
	addObject(new MyObject(1));
	addObject(new MyObject(2));
	addObject(new MyObject(3));
	addObject(new MyObject(4));
	addObject(new MyObject(5));
}

TestClass::addObject(MyObject *obj)
{
	p_my_object_vector.push_back(obj);
}

TestClass::~TestClass()
{
	p_my_object_vector.erase(p_my_object_vector.begin(), p_my_object_vector.end());
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2226055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226055</guid><dc:creator><![CDATA[Steini79]]></dc:creator><pubDate>Fri, 22 Jun 2012 06:36:53 GMT</pubDate></item><item><title><![CDATA[Reply to Boost ptr_vector Elemente löschen on Fri, 22 Jun 2012 06:58:55 GMT]]></title><description><![CDATA[<p>Steini79 schrieb:</p>
<blockquote>
<p>Kann mir bitte jemand sagen, was ich da falsch gemacht habe?</p>
</blockquote>
<p>Ja, du hast dich nicht an die Netiquette gehalten. Deshalb hast du nicht die mit <strong>wichtig</strong> gekennzeichneten Threads gelesen, bevor du deine Frage gestellt hast. Deshalb (und weil du vermutlich auch nicht so genau drüber nachgedacht hast) hast du uns weder den nötigen Code (übersetzbar, reduziert, mit nachstellbarem Problem) noch die Fehlermeldung geliefert. Und deshalb hast du sowohl deine als auch unsere Zeit verschwendet, weil dir so mangels Infos keiner so recht weiterhelfen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2226063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226063</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 22 Jun 2012 06:58:55 GMT</pubDate></item><item><title><![CDATA[Reply to Boost ptr_vector Elemente löschen on Fri, 22 Jun 2012 07:03:42 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke für deine antwort.</p>
<p>Ich dachte event. erkennt jemand an dem beispiel einen fehler oder sagt mir, dass ich die erase() methode von ptr_vector falsch verwende.</p>
<p>Ich werde selbstverständlich noch ein kompilierbares minimalbeispiel und die meldungen von valgrind nachliefern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2226064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226064</guid><dc:creator><![CDATA[Steini79]]></dc:creator><pubDate>Fri, 22 Jun 2012 07:03:42 GMT</pubDate></item></channel></rss>