<?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[Wie teilt Vectoren sauber]]></title><description><![CDATA[<p>Hallo,</p>
<p>in meinen numerischen Codes habe ich mit mehreren großen Feldern zu tun. Die ich am Anfang des Programm als einen großen Vector allokiere.</p>
<pre><code>...
double *a = new double [100000];
double *b = &amp;a[10000];
double *c = &amp;a[20000];
...
</code></pre>
<p>Wenn ich wie es hier propagiert wird die rohen Zeiger durch vector ersetzen möchte, wie weise ich dann b und c zu. Ist die Lösung dann alle einzeln zu allokieren und möglicherweise erst spät im Programm zu merken, ich bekomme nicht genug Speicher zugeteilt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319745/wie-teilt-vectoren-sauber</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 03:39:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319745.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Sep 2013 07:50:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 07:50:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>in meinen numerischen Codes habe ich mit mehreren großen Feldern zu tun. Die ich am Anfang des Programm als einen großen Vector allokiere.</p>
<pre><code>...
double *a = new double [100000];
double *b = &amp;a[10000];
double *c = &amp;a[20000];
...
</code></pre>
<p>Wenn ich wie es hier propagiert wird die rohen Zeiger durch vector ersetzen möchte, wie weise ich dann b und c zu. Ist die Lösung dann alle einzeln zu allokieren und möglicherweise erst spät im Programm zu merken, ich bekomme nicht genug Speicher zugeteilt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349590</guid><dc:creator><![CDATA[andreasgeorg]]></dc:creator><pubDate>Sun, 01 Sep 2013 07:50:30 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 07:59:48 GMT]]></title><description><![CDATA[<p>andreasgeorg schrieb:</p>
<blockquote>
<p>Wenn ich wie es hier propagiert wird die rohen Zeiger durch vector ersetzen möchte, wie weise ich dann b und c zu. Ist die Lösung dann alle einzeln zu allokieren und möglicherweise erst spät im Programm zu merken, ich bekomme nicht genug Speicher zugeteilt?</p>
</blockquote>
<p>Ja, du allozierst den Speicher einzeln, indem du schreibst:</p>
<pre><code>std::vector&lt;double&gt; a(size_a);
std::vector&lt;dobule&gt; b(size_b);
...
</code></pre>
<p>Und wenn du nicht genug Speicher bekommst, wirst du das schon merken.<br />
new schmeißt im Fehlerfall eine Exception und wenn du die nicht fängst, bricht dein Programm ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349592</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 01 Sep 2013 07:59:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 08:06:06 GMT]]></title><description><![CDATA[<p>Nein, bei festen Größen nutzt man <code>std::array</code> . Außer die Größen sind so groß, das der Stack zu klein wird...</p>
<pre><code>std::array&lt;double, size_a&gt; a;
std::array&lt;dobule, size_b&gt; b;
</code></pre>
<p>Zehntausend Skalare sind (eine Größe von jeweils 8 Byte vorausgesetzt) 80 Kilobytes. Ein Stack ist i.d.R irgendwo im einstelligen Megabyte-Bereich. Sollte wohl gehen, wenn das nicht dutzende Arrays werden. Sonst müsstest du tatsächlich besser vom Heap allozieren (=&gt; <code>vector</code> ).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349594</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 01 Sep 2013 08:06:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 08:11:07 GMT]]></title><description><![CDATA[<p>Danke Euch beiden,</p>
<p>std::array geht nicht, da die &quot;100000&quot; (können aber auch gerne Mio's sein) aus einem Configfile gelesen wird.</p>
<p>Schade das das nicht mehr so schön wie früher geht, es war bisweilen schon angenehm das Hauptfeld an die Funktionen zu übergeben und sich dort die nötigen Teilfelder zu extrahieren. Na dann muß ich mal sehen wie konform ich sein will <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2349596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349596</guid><dc:creator><![CDATA[andreasgeorg]]></dc:creator><pubDate>Sun, 01 Sep 2013 08:11:07 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 08:18:15 GMT]]></title><description><![CDATA[<p>andreasgeorg schrieb:</p>
<blockquote>
<p>Schade das das nicht mehr so schön wie früher geht, es war bisweilen schon angenehm das Hauptfeld an die Funktionen zu übergeben und sich dort die nötigen Teilfelder zu extrahieren.</p>
</blockquote>
<pre><code>size_t size = readFromConfig();
vector&lt;double&gt; v(size);
fülleDaten(v);
foo(v);

void foo(const vector&lt;double&gt; &amp;data){
    for (int i = relevanteDatenStart; i &lt; relevanteDatenEnde; i++)
        tuwas(data[i]);
}
</code></pre>
<p>Wenn das nicht das Richtige ist erklär mal genauer was &quot;die nötigen Teilfelder extrahieren&quot; bedeutet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349598</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sun, 01 Sep 2013 08:18:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 08:26:38 GMT]]></title><description><![CDATA[<pre><code>...
std::vector&lt;double&gt; a(100000);
double *b = &amp;a[10000];
double *c = &amp;a[20000];
...
</code></pre>
<p>Wo ist das Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349603</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 01 Sep 2013 08:26:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 10:58:59 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<pre><code>...
std::vector&lt;double&gt; a(100000);
double *b = &amp;a[10000];
double *c = &amp;a[20000];
...
</code></pre>
<p>Wo ist das Problem?</p>
</blockquote>
<p>Das ist so ziemlich das selbe wie bisher, damit kann ich gut leben. Mir war nicht bewußt, daß das so erlaubt ist. Da die Änderung aber nur ein <strong>new</strong> und ein <strong>free</strong> ersetzt, lohnt es sich überhaubt die Kontainer nutzen zu wollen?</p>
<p>Danke</p>
<p>@nwp3<br />
Der Konstrukt ist so das die Felder z.B. U,V, W und noch ein paar mehr direkt hintereinander liegen. Und es wird etwa folgendes gemacht.</p>
<pre><code>int main(int argc, char* argv[])
{
  double *vec  = GetVecFromCFG();
  int     size = GetSizeFromCFG();

  if(vec)
  {
    ...
    foo(vec,size);
    ...
    free vec;
  }
}

void foo(double* vec, int n)
{
  double *u = vec;
  double *v = &amp;vec[n];
  double *w = &amp;vec[2*n];
  ...
}
</code></pre>
<p>Die Idee war nun die neuen Kontainer zu nutzen wenn es den Code besser macht. Besser in Form von Lesbarkeit, Sicherheit und natürlich keine Performanceverluste.<br />
An einigen anderen Stellen habe ich bereits C++11 genutzt, insbesondere bei der Ein-/Ausgabe aber an den Vektoren habe ich mich bisher nicht vergriffen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349635</guid><dc:creator><![CDATA[andreasgeorg]]></dc:creator><pubDate>Sun, 01 Sep 2013 10:58:59 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 11:01:00 GMT]]></title><description><![CDATA[<blockquote>
<p>lohnt es sich überhaubt die Kontainer nutzen zu wollen?</p>
</blockquote>
<p>Wenn ein Auto dich ja nur zehn mal schneller ans Ziel bringt, lohnt es sich überhaupt, es zu benutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349637</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 01 Sep 2013 11:01:00 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 11:02:14 GMT]]></title><description><![CDATA[<p>andreasgeorg schrieb:</p>
<blockquote>
<p>Das ist so ziemlich das selbe wie bisher, damit kann ich gut leben. Mir war nicht bewußt, daß das so erlaubt ist. Da die Änderung aber nur ein <strong>new</strong> und ein <strong>free</strong> ersetzt, lohnt es sich überhaubt die Kontainer nutzen zu wollen?</p>
</blockquote>
<p>Ich hoffe du meinst delete.<br />
Bitte, bitte, mach, dass er sich vertan hat.</p>
<blockquote>
<p>Die Idee war nun die neuen Kontainer zu nutzen wenn es den Code besser macht. Besser in Form von Lesbarkeit, Sicherheit und natürlich keine Performanceverluste.<br />
An einigen anderen Stellen habe ich bereits C++11 genutzt, insbesondere bei der Ein-/Ausgabe aber an den Vektoren habe ich mich bisher nicht vergriffen.</p>
</blockquote>
<p>std::vector ist wesentlich besser als new und <strong>delete</strong>:<br />
- er kann wachsen<br />
- er hat die Größe integriert<br />
- ist mit STL Algorithmen kompatibel<br />
- er ist exception safe<br />
- er gibt den Speicher auf jeden Fall frei<br />
- er hat Unterstützung für verschiedene Allokatoren direkt integriert<br />
- ...</p>
<p>Alles keine Dinge, die Pointer + new haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349638</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 01 Sep 2013 11:02:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 11:03:27 GMT]]></title><description><![CDATA[<p>andreasgeorg schrieb:</p>
<blockquote>
<p>Da die Änderung aber nur ein <strong>new</strong> und ein <strong>free</strong> ersetzt [...]</p>
</blockquote>
<p>Wenn du was mit new anlegst, dann musst du es mit delete freigeben und nicht mit free()...</p>
<p>andreasgeorg schrieb:</p>
<blockquote>
<p>[...] lohnt es sich überhaubt die Kontainer nutzen zu wollen?</p>
</blockquote>
<p>Wie kümmerst du dich im Moment um die Speicherverwaltung? Exception Safety? Wie stellst du im Moment sicher, dass kein möglicher Ausführungspfad leaked?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349639</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sun, 01 Sep 2013 11:03:27 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 11:04:02 GMT]]></title><description><![CDATA[<blockquote>
<p>Alles keine Dinge, die Pointer + new haben.</p>
</blockquote>
<p>Wobei das letzte Argument mit dieser Begründung keinen Sinn macht - schließlich kannst du alle anderen Allokatoren auch so benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349640</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 01 Sep 2013 11:04:02 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 11:09:46 GMT]]></title><description><![CDATA[<p>Asche auf mein Haupt ich weiß natürlich das new und delete zusammen gehören. Die Zeit wo ich malloc/free brauchte liegt weit in der Vergangenheit. Mea culpa <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2349644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349644</guid><dc:creator><![CDATA[andreasgeorg]]></dc:creator><pubDate>Sun, 01 Sep 2013 11:09:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 11:09:54 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<blockquote>
<p>Alles keine Dinge, die Pointer + new haben.</p>
</blockquote>
<p>Wobei das letzte Argument mit dieser Begründung keinen Sinn macht - schließlich kannst du alle anderen Allokatoren auch so benutzen.</p>
</blockquote>
<p>Ja, aber mit new muss man erst allocate() und dann construct() aufrufen, bei vector lediglich ein Templateargument ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349645</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 01 Sep 2013 11:09:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 11:21:25 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>andreasgeorg schrieb:</p>
<blockquote>
<p>[...] lohnt es sich überhaubt die Kontainer nutzen zu wollen?</p>
</blockquote>
<p>Wie kümmerst du dich im Moment um die Speicherverwaltung? Exception Safety? Wie stellst du im Moment sicher, dass kein möglicher Ausführungspfad leaked?</p>
</blockquote>
<p>Nun die Speicherverwaltung ist recht simpel. Nach dem Einlesen der Inputdatei Speicher anfordern, wenn ich ihn nicht bekomme war es das -&gt; Fehlermeldung. Sonst rechnen, Daten schreiben, dann Speicher freigeben mit delete.</p>
<p>Speicherleaks sind dadurch kaum möglich das nur einmal Speicher angefordert wird bevor die Rechenthreads gestartet werden.</p>
<p>Exception Safety - Kopf einziehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349648</guid><dc:creator><![CDATA[andreasgeorg]]></dc:creator><pubDate>Sun, 01 Sep 2013 11:21:25 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 11:36:21 GMT]]></title><description><![CDATA[<p>andreasgeorg schrieb:</p>
<blockquote>
<p>Da die Änderung aber nur ein <strong>new</strong> und ein <strong>free</strong> ersetzt, lohnt es sich überhaubt die Kontainer nutzen zu wollen?</p>
</blockquote>
<p>So, wie ich dich verstanden habe, handelt es sich um eine globale Variable, die zum Programmstart initialisiert wird und eigentlich nie freigeben werden muss. Der einzige Gewinn liegt dann darin, dass das Feld komplett mit 0 initialisiert wird.<br />
Bei globalen Variablen solte man sich immer fragen, ob es sinnvoll und notwendig ist. Im Regelfall lautet die Antwort &quot;Nein&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349653</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 01 Sep 2013 11:36:21 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 11:44:21 GMT]]></title><description><![CDATA[<p>andreasgeorg schrieb:</p>
<blockquote>
<p>Sonst rechnen, Daten schreiben, dann Speicher freigeben mit delete.</p>
</blockquote>
<p>Und beim Rechnen und Daten Schreiben kann nirgendwo was schiefgehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349657</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sun, 01 Sep 2013 11:44:21 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 12:35:44 GMT]]></title><description><![CDATA[<p>Mal ein Beispiel was man machen könnte. Die Rangechecks gehen nicht kostenlos, deswegen kann man die auskommentieren.</p>
<pre><code>#define DEBUG //kommentier mich aus damits schneller geht
//unter VS lieber _DEBUG benutzen, das wird automatisch definiert
//beim gcc NDEBUG definieren, damit die asserts weg gehen

struct SubVector{
#ifdef DEBUG
	static SubVector create(vector&lt;double&gt; &amp;v, size_t start, size_t size){
		return SubVector(v, start, size);
	}
	static const SubVector create(const vector&lt;double&gt; &amp;v, size_t start, size_t size){
		return SubVector(const_cast&lt;vector&lt;double&gt; &amp;&gt;(v), start, size);
	}
#else
	static SubVector create(vector&lt;double&gt; &amp;v, size_t start){
		return SubVector(v, start);
	}
	static const SubVector create(const vector&lt;double&gt; &amp;v, size_t start){
		return SubVector(const_cast&lt;vector&lt;double&gt; &amp;&gt;(v), start);
	}
#endif
	double &amp;operator [](size_t index){
		assert(index &lt; size);
		return data[size];
	}
private:
#ifdef DEBUG
	SubVector(vector&lt;double&gt; &amp;v, size_t start, size_t size_) : size(size_){
		assert(v.size() &gt; start + size); //sonst greifen wir daneben
		data = &amp;v[start];
	}
#else
	SubVector(vector&lt;double&gt; &amp;v, size_t start){
		data = &amp;v[start];
	}
#endif
	double *data;
#ifdef DEBUG
	size_t size;
#endif
};
</code></pre>
<p>Die vielen #ifdefs nerven und dass C++ sowas nicht unterstützt auch:</p>
<pre><code>SubVector(const vector&lt;double&gt; &amp;v, size_t start) : data(&amp;v[start]) const{
}
</code></pre>
<p>Im Endeffekt kannst du deine double * durch SubVector ersetzen und hast im Debugmode Range-Checks drin. Im Release tut der SubVector dann dasselbe wie der double *.</p>
<p>Ob das jetzt sauberer ist... naja entscheide selbst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349664</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sun, 01 Sep 2013 12:35:44 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Sun, 01 Sep 2013 13:05:35 GMT]]></title><description><![CDATA[<p>@npw3:</p>
<p>Es ist völlig redundant, die Funktionsdefinition zweimal stehen zu haben, wenn nur ein kleiner Teil davon je nach Makro unterschiedlich ist.<br />
Also die PP-Direktiven in den Funktionsrumpf auslagern.</p>
<pre><code>SubVector(const vector&lt;double&gt; &amp;v, size_t start) : data(&amp;v[start]) const{
}
</code></pre>
<p>Dieser Code macht keinen Sinn. Vor der Konstruktion eines Objektes ist seine Konstanz unwichtig, sonst kämen wir ja zu dem Dilemma das wir es nicht initialisieren könnten (weil es schon im Konstruktor nicht veränderbar ist).</p>
<p>Außerdem hast du den (mMn. nötigen) Konvertierungsoperator vergessen, sonst ist das schnöde <code>SubVector</code> semantisch nicht so dasselbe wie ein Zeiger...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349671</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 01 Sep 2013 13:05:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Mon, 02 Sep 2013 00:38:05 GMT]]></title><description><![CDATA[<blockquote>
<p>Nein, bei festen Größen nutzt man std::array. Außer die Größen sind so groß, das der Stack zu klein wird</p>
</blockquote>
<p>Immer deine Pauschalantworten. Was, wenn das Array moveable sein soll? Nein, dafuer werde ich std::Array nicht in einen Smartpointer packen sondern gleich std::vector nehmen.</p>
<pre><code class="language-cpp">#ifdef DEBUG 
... code 
#else 
... code
#endif
</code></pre>
<p>Wie ich das hasse. Ausserdem scheinst jemand nicht verstanden zu haben, was assert in Abhaengigkeit vom Debug und Release-Modus macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349739</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 02 Sep 2013 00:38:05 GMT</pubDate></item><item><title><![CDATA[Reply to Wie teilt Vectoren sauber on Mon, 02 Sep 2013 14:44:37 GMT]]></title><description><![CDATA[<p>Danke an Alle,</p>
<p>ich habe einige Denkanstöße bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2349898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2349898</guid><dc:creator><![CDATA[andreasgeorg]]></dc:creator><pubDate>Mon, 02 Sep 2013 14:44:37 GMT</pubDate></item></channel></rss>