<?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[std::deque&amp;lt;std::string&amp;gt; ...]]></title><description><![CDATA[<p>Ich hab da ein kleines Problem. Ich denke mal, dass das Unsinn is:</p>
<pre><code class="language-cpp">std::deque&lt;std::string&gt;  variable;
variable.push_back(„“);
std::deque&lt;std::string&gt;::iterator zeiger=variable.begin();
*zeiger=“Hallo Welt“;
</code></pre>
<p>Die deque kommt nicht damit zurecht, das sich das String ausweitet, weil sie dem Element eine feste Speichergröße zugewiesen hat, um am Ende das nächste Element anzuhängen. D.h wollte ich wie oben das String vergrößern, wird das nächste Element überschreiben, oder angeschrieben, also muss ich entweder im vornherein eine feste Größe zuweisen, oder ich verwende ein c_string. War das so ungefähr richtig schlussgefolgert?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/287156/std-deque-lt-std-string-gt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 13:57:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287156.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 May 2011 21:42:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::deque&amp;lt;std::string&amp;gt; ... on Mon, 23 May 2011 21:42:36 GMT]]></title><description><![CDATA[<p>Ich hab da ein kleines Problem. Ich denke mal, dass das Unsinn is:</p>
<pre><code class="language-cpp">std::deque&lt;std::string&gt;  variable;
variable.push_back(„“);
std::deque&lt;std::string&gt;::iterator zeiger=variable.begin();
*zeiger=“Hallo Welt“;
</code></pre>
<p>Die deque kommt nicht damit zurecht, das sich das String ausweitet, weil sie dem Element eine feste Speichergröße zugewiesen hat, um am Ende das nächste Element anzuhängen. D.h wollte ich wie oben das String vergrößern, wird das nächste Element überschreiben, oder angeschrieben, also muss ich entweder im vornherein eine feste Größe zuweisen, oder ich verwende ein c_string. War das so ungefähr richtig schlussgefolgert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2067667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2067667</guid><dc:creator><![CDATA[BigGreenFoot]]></dc:creator><pubDate>Mon, 23 May 2011 21:42:36 GMT</pubDate></item><item><title><![CDATA[Reply to std::deque&amp;lt;std::string&amp;gt; ... on Mon, 23 May 2011 21:55:30 GMT]]></title><description><![CDATA[<p>Abgesehen davon, daß ein Compiler nicht besonders gut mit typographischen Anführungszeichen zurechtkommt, sollte der Code so eigentlich funktionieren. Die Größe des String's<sup>*</sup> ist konstant und der Speicher mit den Nutzdaten liegt außerhalb und stört die deque nicht weiter.</p>
<p><sup>*</sup>Für den Speicher, den deque anfordert, ist sizeof(T) entscheidend.</p>
<p>Edit: <a href="http://ideone.com/O9pMa" rel="nofollow">hier</a> hast du den Beweis, daß es funktioniert <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/2067669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2067669</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 23 May 2011 21:55:30 GMT</pubDate></item><item><title><![CDATA[Reply to std::deque&amp;lt;std::string&amp;gt; ... on Tue, 24 May 2011 08:19:53 GMT]]></title><description><![CDATA[<p>BigGreenFoot schrieb:</p>
<blockquote>
<p>Die deque kommt nicht damit zurecht, das sich das String ausweitet, weil sie dem Element eine feste Speichergröße zugewiesen hat, um am Ende das nächste Element anzuhängen. D.h wollte ich wie oben das String vergrößern, wird das nächste Element überschreiben, oder angeschrieben, also muss ich entweder im vornherein eine feste Größe zuweisen, oder ich verwende ein c_string. War das so ungefähr richtig schlussgefolgert?</p>
</blockquote>
<p>Völlig daneben. Ein std::string besteht aus 2 Speicherbereichen: einmal ein Bereich fester Größe, der grundlegende Informationen über den String besitzt, und einmal der Datenbereich. Der Datenbereich wird vom string irgendwo auf dem freien Speicher angelegt und verwaltet. Das, was die deque intern verwaltet, umherkopiert und wofür sie Speicher reservieren muss, ist nur der Info-Bereich, und der ist immer gleich groß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2067760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2067760</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 24 May 2011 08:19:53 GMT</pubDate></item></channel></rss>