<?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[Array von std::string mit std::array&amp;lt;&amp;gt; Probleme]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>ich übe mich gerade in C++ (MinGW -&gt; GCC 4.6.2, CodeBlocks) und habe ein Problem. Ich möchte gerne eine Array von Strings erzeugen, welches die Monate eines Jahres erhält. Dieses Array versuche ich mit der in C++11 eingeführten Array-Klasse zu erzeugen. Ich habe folgendes probiert (verkürzt dargestellt).</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;array&gt;

int main
{
    using std::cin;
    using std::cout;
    using std::endl;
    using std::array;
    using std::string;

    array&lt;string, 2&gt; Months = { &quot;Januar&quot;,
                                &quot;Februar&quot;};

    cout &lt;&lt; Months.at(0) &lt;&lt; endl;
    cout &lt;&lt; Months.at(1) &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>Funktioniert auch soweit wunderbar, die passenden Namen werden angezeigt. Allerding bekomme ich folgende Warnung:</p>
<pre><code>warning: missing braces around initializer for 'std::array&lt;std::basic_string&lt;char&gt;, 2u&gt;::value_type [2] {aka std::basic_string&lt;char&gt;[2]}'
</code></pre>
<p>Ich hab schon viel rumprobiert, aber mit zusätzlichen {} bekomme ich dann meist nur die Meldung, dass zu viele Initializer vorhanden sind. Kann mir jemand sagen wo ich etwas falsch gemacht habe?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300753/array-von-std-string-mit-std-array-lt-gt-probleme</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 16:11:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300753.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Mar 2012 19:34:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array von std::string mit std::array&amp;lt;&amp;gt; Probleme on Fri, 09 Mar 2012 19:42:03 GMT]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>ich übe mich gerade in C++ (MinGW -&gt; GCC 4.6.2, CodeBlocks) und habe ein Problem. Ich möchte gerne eine Array von Strings erzeugen, welches die Monate eines Jahres erhält. Dieses Array versuche ich mit der in C++11 eingeführten Array-Klasse zu erzeugen. Ich habe folgendes probiert (verkürzt dargestellt).</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;array&gt;

int main
{
    using std::cin;
    using std::cout;
    using std::endl;
    using std::array;
    using std::string;

    array&lt;string, 2&gt; Months = { &quot;Januar&quot;,
                                &quot;Februar&quot;};

    cout &lt;&lt; Months.at(0) &lt;&lt; endl;
    cout &lt;&lt; Months.at(1) &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>Funktioniert auch soweit wunderbar, die passenden Namen werden angezeigt. Allerding bekomme ich folgende Warnung:</p>
<pre><code>warning: missing braces around initializer for 'std::array&lt;std::basic_string&lt;char&gt;, 2u&gt;::value_type [2] {aka std::basic_string&lt;char&gt;[2]}'
</code></pre>
<p>Ich hab schon viel rumprobiert, aber mit zusätzlichen {} bekomme ich dann meist nur die Meldung, dass zu viele Initializer vorhanden sind. Kann mir jemand sagen wo ich etwas falsch gemacht habe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190253</guid><dc:creator><![CDATA[Meiner]]></dc:creator><pubDate>Fri, 09 Mar 2012 19:42:03 GMT</pubDate></item><item><title><![CDATA[Reply to Array von std::string mit std::array&amp;lt;&amp;gt; Probleme on Fri, 09 Mar 2012 19:41:00 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">array&lt;string, 2&gt; Months = {{ &quot;Januar&quot;,
                                &quot;Februar&quot;}};
</code></pre>
<p>Richtig korrekt ist es so. Mit den äußeren Klammern sprichst du das Datenelement (ein Array) der Klasse <code>array</code> an, mit den inneren Klammern initialisierst du dieses Array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190254</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 09 Mar 2012 19:41:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array von std::string mit std::array&amp;lt;&amp;gt; Probleme on Fri, 09 Mar 2012 19:41:09 GMT]]></title><description><![CDATA[<p>Da du std::string mit einem const char* initialisierst, sollten um die einzelnen Strings geschweifte Klammern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190255</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Fri, 09 Mar 2012 19:41:09 GMT</pubDate></item><item><title><![CDATA[Reply to Array von std::string mit std::array&amp;lt;&amp;gt; Probleme on Fri, 09 Mar 2012 19:56:00 GMT]]></title><description><![CDATA[<p>Gugelmoser schrieb:</p>
<blockquote>
<pre><code class="language-cpp">array&lt;string, 2&gt; Months = {{ &quot;Januar&quot;,
                                &quot;Februar&quot;}};
</code></pre>
<p>Richtig korrekt ist es so. Mit den äußeren Klammern sprichst du das Datenelement (ein Array) der Klasse <code>array</code> an, mit den inneren Klammern initialisierst du dieses Array.</p>
</blockquote>
<p>Ah ok, so funktioniert es.</p>
<p>Michael E. schrieb:</p>
<blockquote>
<p>Da du std::string mit einem const char* initialisierst, sollten um die einzelnen Strings geschweifte Klammern.</p>
</blockquote>
<p>Das hatte ich schon probiert, da bekomme ich den Fehler: &quot;too many initializers for....&quot;.</p>
<p>Vielen Dank für die Hilfe.</p>
<p>EDIT: Eine Frage hab ich noch. Ich habe festgestellt, dass ich unabhängig vom Typ immer diese doppelte Klammersetzung von oben machen muss. In meinem C++ Primer Plus (v.6) und auch hier [url] <a href="http://www2.research.att.com/~bs/C++0xFAQ.html#std-array" rel="nofollow">http://www2.research.att.com/~bs/C++0xFAQ.html#std-array</a> [/url] wird das in den Beispielen aber nicht gemacht. Ist das Compilerspezifisch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190258</guid><dc:creator><![CDATA[Meiner]]></dc:creator><pubDate>Fri, 09 Mar 2012 19:56:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array von std::string mit std::array&amp;lt;&amp;gt; Probleme on Fri, 09 Mar 2012 20:06:25 GMT]]></title><description><![CDATA[<p>Meiner schrieb:</p>
<blockquote>
<p>EDIT: Eine Frage hab ich noch. Ich habe festgestellt, dass ich unabhängig vom Typ immer diese doppelte Klammersetzung von oben machen muss. In meinem C++ Primer Plus (v.6) und auch hier [url] <a href="http://www2.research.att.com/~bs/C++0xFAQ.html#std-array" rel="nofollow">http://www2.research.att.com/~bs/C++0xFAQ.html#std-array</a> [/url] wird das in den Beispielen aber nicht gemacht. Ist das Compilerspezifisch?</p>
</blockquote>
<p>Die Compiler erlauben es, der Standard glaub nicht. Natürlich ist es unabhängig von Typ. Du kannst es dir so vorstellen, dass std::array einfach ein rohes Array kapselt.</p>
<p>Wie initialisierst du ein rohes Array? So:</p>
<pre><code class="language-cpp">int ar[] = {1,2,3};
</code></pre>
<p>Wie initialisierst du eine <code>struct</code> mit reiner Datenansammlung: So:</p>
<pre><code class="language-cpp">struct Foo
{
	int i;
};

Foo f = {1};
</code></pre>
<p>Und nun siehst du ja, wenn das Datenelement der Struktur ein Array ist, brauchst du eben 2x {}.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190264</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 09 Mar 2012 20:06:25 GMT</pubDate></item><item><title><![CDATA[Reply to Array von std::string mit std::array&amp;lt;&amp;gt; Probleme on Fri, 09 Mar 2012 20:16:16 GMT]]></title><description><![CDATA[<p>Ok, mit dem Struktur Beispiel hab ich das soweit verstanden. War / Bin nur irritiert, da selbst in der MSDN etwas anderes drin steht <a href="http://msdn.microsoft.com/en-us/library/bb983093.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/bb983093.aspx</a> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190265</guid><dc:creator><![CDATA[Meiner]]></dc:creator><pubDate>Fri, 09 Mar 2012 20:16:16 GMT</pubDate></item><item><title><![CDATA[Reply to Array von std::string mit std::array&amp;lt;&amp;gt; Probleme on Fri, 09 Mar 2012 20:15:43 GMT]]></title><description><![CDATA[<p>Meiner schrieb:</p>
<blockquote>
<p>Ok, mit dem Struktur Beispiel hab ich das sowei verstanden. War / Bin nur irritiert, da selbst in der MSDN was anderes drin steht <a href="http://msdn.microsoft.com/en-us/library/bb983093.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/bb983093.aspx</a> .</p>
</blockquote>
<p>Wie gesagt, die Compiler erlauben es, weil es einfach doof ist 2x {} zu schreiben. Es ist ja bekannt, dass Informatiker faul sind. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190267</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 09 Mar 2012 20:15:43 GMT</pubDate></item><item><title><![CDATA[Reply to Array von std::string mit std::array&amp;lt;&amp;gt; Probleme on Fri, 09 Mar 2012 20:18:15 GMT]]></title><description><![CDATA[<p>Genau dass hab ich mir auch gedacht :D. Dann wäre das ja geklärt, vielen Dank für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190268</guid><dc:creator><![CDATA[Meiner]]></dc:creator><pubDate>Fri, 09 Mar 2012 20:18:15 GMT</pubDate></item><item><title><![CDATA[Reply to Array von std::string mit std::array&amp;lt;&amp;gt; Probleme on Fri, 09 Mar 2012 20:47:51 GMT]]></title><description><![CDATA[<p>Falsch geklärt, es handelt sich um einen gcc-Bug.<br />
<a href="http://www.c-plusplus.net/forum/p2185378#2185378" rel="nofollow">http://www.c-plusplus.net/forum/p2185378#2185378</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190270</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 09 Mar 2012 20:47:51 GMT</pubDate></item><item><title><![CDATA[Reply to Array von std::string mit std::array&amp;lt;&amp;gt; Probleme on Fri, 09 Mar 2012 20:53:40 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Falsch geklärt, es handelt sich um einen gcc-Bug.<br />
<a href="http://www.c-plusplus.net/forum/p2185378#2185378" rel="nofollow">http://www.c-plusplus.net/forum/p2185378#2185378</a></p>
</blockquote>
<p>Ah ok, gut zu wissen, dass es standardkonform ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190273</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 09 Mar 2012 20:53:40 GMT</pubDate></item></channel></rss>