<?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[fill() für mehrdimensionalen vector]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich traue mich ja kaum noch zu fragen, aber Google gibt absolut nichts her und ich habe alle Kombinationen versucht.</p>
<pre><code class="language-cpp">vector&lt;vector&lt;bool&gt; &gt; field(80,25);
fill(field.begin(), field.end(), false); // Wie muss das hier lauten?
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/278890/fill-für-mehrdimensionalen-vector</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 21:16:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/278890.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Dec 2010 21:30:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Tue, 14 Dec 2010 21:30:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich traue mich ja kaum noch zu fragen, aber Google gibt absolut nichts her und ich habe alle Kombinationen versucht.</p>
<pre><code class="language-cpp">vector&lt;vector&lt;bool&gt; &gt; field(80,25);
fill(field.begin(), field.end(), false); // Wie muss das hier lauten?
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1994671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994671</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Tue, 14 Dec 2010 21:30:02 GMT</pubDate></item><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Tue, 14 Dec 2010 21:33:26 GMT]]></title><description><![CDATA[<p>Du musst zuerst einen temporären vector füllen und dann den als Wert bei dem für den äusseren vector angeben. Probier nicht in vectoren zu denken, sondern einfach nur wie du das für andere Sachen machen würdest, dann wird die Funktionsweise automatisch klar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1994673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994673</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 14 Dec 2010 21:33:26 GMT</pubDate></item><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Tue, 14 Dec 2010 21:41:07 GMT]]></title><description><![CDATA[<p>Gib mir bitte ein Beispiel. Ich bin absolut ne Null darin, Textaufgaben zu abstrahieren <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/1994674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994674</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Tue, 14 Dec 2010 21:41:07 GMT</pubDate></item><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Tue, 14 Dec 2010 21:43:44 GMT]]></title><description><![CDATA[<p>Punkt 1:<br />
<code>vector&lt;vector&lt;bool&gt; &gt; field(80,25);</code><br />
Dies hier ist kein 80x25 vector, sondern ein 80 Elemente vector bei dem die Elemente den Wert 25 bekommen. Da die Elemente aber vom Typ vector&lt;bool&gt; sein sollen, durfte dies nicht compilieren.<br />
Siehe dazu die Referenz des vector-Kontruktors:<br />
<a href="http://www.cplusplus.com/reference/stl/vector/vector/" rel="nofollow">http://www.cplusplus.com/reference/stl/vector/vector/</a></p>
<p>Entsprechend sieht man, was richtig wäre:<br />
<code>vector&lt;vector&lt;bool&gt; &gt; field(80, vector&lt;bool&gt;(25));</code><br />
Ein vector mit 80 Elementen vom Typ vector&lt;bool&gt;, die jeweils mit 25 bool-Elementen gefüllt werden.</p>
<p>Natürlich kann man auf die gleiche Weise auch gleich angegeben, dass sie alle false sein sollen:<br />
<code>vector&lt;vector&lt;bool&gt; &gt; field(80, vector&lt;bool&gt;(25, false));</code></p>
<p>2. Zum fill: Entsprechend musst du bei fill einen vector als Füllmaterial übergeben:<br />
<code>fill(field.begin(), field.end(), vector&lt;bool&gt;(25,false));</code><br />
Mit diesem vector wird dann der äußere vector gefüllt.</p>
<p>3. Etwas was du vermutlich nicht weißt: vector&lt;bool&gt; ist eine spezielle Spezialisierung des vector-Templates, bei dem eine spezielle Implementierung durch den Standard vorgegeben ist. Dummerweise war man etwas übereifrig und die vorgegebene Implementierung sorgt dafür, dass der vector&lt;bool&gt; sich nicht mehr wie ein normaler vector verhält. Das hat man zwar später gemerkt, aber da war es zu spät, weil man nicht einfach so den Standard ändern kann. I<br />
Google mal danach, damit du keine unangenehmen Überraschungen erlebst. Vielleicht bietet dein Compiler auch eine spezielle Version der Standardbibliothek an, die den vector&lt;bool&gt; nicht spezialisiert und die man durch gewisse Schalter aktivieren kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1994675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994675</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 14 Dec 2010 21:43:44 GMT</pubDate></item><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Tue, 14 Dec 2010 21:58:47 GMT]]></title><description><![CDATA[<p>Achso <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Vielen Dank. Dann war ich ja völlig auf dem Holzweg.</p>
<p>Gibts denn einen &quot;eleganten&quot; Weg für bool-Arrays, wenn man nicht</p>
<pre><code class="language-cpp">bool field[80][25];
</code></pre>
<p>verwenden will?</p>
<p>EDIT: Wäre std::tr1::array&lt;&gt; eine Lösung? Und wenn der Compiler C++0x beherrscht, muss dann das tr1 noch angegeben werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1994676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994676</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Tue, 14 Dec 2010 21:58:47 GMT</pubDate></item><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Tue, 14 Dec 2010 22:10:36 GMT]]></title><description><![CDATA[<p>Was sagen die Experten hierzu:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;
using namespace std;

int main()
{
	vector&lt;bool&gt; field[80];
	for (int i = 0; i &lt; 80; field[i].resize(25, false), i++);

	bool test = field[79][8];

	return 0;
</code></pre>
<p>:xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1994677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994677</guid><dc:creator><![CDATA[&amp;gt;&amp;gt;..&amp;lt;&amp;lt;]]></dc:creator><pubDate>Tue, 14 Dec 2010 22:10:36 GMT</pubDate></item><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Tue, 14 Dec 2010 22:10:43 GMT]]></title><description><![CDATA[<p>lemon03 schrieb:</p>
<blockquote>
<p>Achso <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Vielen Dank. Dann war ich ja völlig auf dem Holzweg.</p>
<p>Gibts denn einen &quot;eleganten&quot; Weg für bool-Arrays, wenn man nicht</p>
<pre><code class="language-cpp">bool field[80][25];
</code></pre>
</blockquote>
<p>Was ist daran nicht elegant???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1994678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994678</guid><dc:creator><![CDATA[wtf!!!]]></dc:creator><pubDate>Tue, 14 Dec 2010 22:10:43 GMT</pubDate></item><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Tue, 14 Dec 2010 22:16:23 GMT]]></title><description><![CDATA[<p>Deshalb:</p>
<pre><code class="language-cpp">void editField(HANDLE set, bool (*field)[25])

[ ... ]

bool field[80][25];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1994679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994679</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Tue, 14 Dec 2010 22:16:23 GMT</pubDate></item><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Tue, 14 Dec 2010 22:40:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::tr1::array&lt;bool, 80, 25&gt; field;
</code></pre>
<p>Wäre das korrekt?</p>
<p>EDIT: Gilt das nur für VC2008?<br />
<a href="http://www.codeguru.com/cpp/cpp/cpp_mfc/stl/article.php/c15257" rel="nofollow">http://www.codeguru.com/cpp/cpp/cpp_mfc/stl/article.php/c15257</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1994681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994681</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Tue, 14 Dec 2010 22:40:16 GMT</pubDate></item><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Tue, 14 Dec 2010 23:30:39 GMT]]></title><description><![CDATA[<p>lemon03 schrieb:</p>
<blockquote>
<p>EDIT: Gilt das nur für VC2008?<br />
<a href="http://www.codeguru.com/cpp/cpp/cpp_mfc/stl/article.php/c15257" rel="nofollow">http://www.codeguru.com/cpp/cpp/cpp_mfc/stl/article.php/c15257</a></p>
</blockquote>
<p>Tatsächlich. Jedenfalls ein eindimensionales std::tr1::array&lt;&gt;. Beim GNU GCC Compiler gibts bei mir Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1994702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994702</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Tue, 14 Dec 2010 23:30:39 GMT</pubDate></item><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Wed, 15 Dec 2010 08:21:32 GMT]]></title><description><![CDATA[<p>lemon03 schrieb:</p>
<blockquote>
<p>lemon03 schrieb:</p>
<blockquote>
<p>EDIT: Gilt das nur für VC2008?<br />
<a href="http://www.codeguru.com/cpp/cpp/cpp_mfc/stl/article.php/c15257" rel="nofollow">http://www.codeguru.com/cpp/cpp/cpp_mfc/stl/article.php/c15257</a></p>
</blockquote>
<p>Tatsächlich. Jedenfalls ein eindimensionales std::tr1::array&lt;&gt;. Beim GNU GCC Compiler gibts bei mir Fehler.</p>
</blockquote>
<p>Ein zweidimensionales Array ist ein Array von eindimensionalen Arrays:</p>
<pre><code class="language-cpp">using std::tr1::array;
array&lt;array&lt;bool, 25&gt;, 80&gt; field;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1994746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994746</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 15 Dec 2010 08:21:32 GMT</pubDate></item><item><title><![CDATA[Reply to fill() für mehrdimensionalen vector on Wed, 15 Dec 2010 14:51:27 GMT]]></title><description><![CDATA[<p>Danke. Trotzdem geht das nur ab Visual C++ 2008.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1994932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994932</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Wed, 15 Dec 2010 14:51:27 GMT</pubDate></item></channel></rss>