<?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-Inhalt direkt ausgeben &#x2F; Variable Array-Größe]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich bin neu in C++, habe vor ein kleines Programm zu schreiben und bin jetzt grade dabei mich Schritt für Schritt vor zu arbeiten.</p>
<p>Dabei bin ich auf zwei unerwartete Probleme gestoßen^^:</p>
<p>Wenn ich mein Array mit Zahlen vollschreibe, wie kann ich das in meiner Konsolenanwendung direkt zur Kontrolle ausgeben lassen? Oder muss ich mir da immer eine Schleife bauen, die mir jedes Element einzeln ausspuckt?</p>
<p>Und:</p>
<p>Wie kann ich die Array-Länge über eine Abfrage bestimmen?<br />
Scheinbar (wenn ich den Kompilerfehler richtig interpretiere) muss die Länge des Arrays schon beim kompilieren bestimmt sein, muss ich also erst ein Array erstellen und dann nachträglich die Länge ändern?<br />
Wenn das so ist, wie geht das denn?</p>
<p>Gruß Panda</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319599/array-inhalt-direkt-ausgeben-variable-array-größe</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 04:10:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319599.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 Aug 2013 11:40:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 11:40:07 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich bin neu in C++, habe vor ein kleines Programm zu schreiben und bin jetzt grade dabei mich Schritt für Schritt vor zu arbeiten.</p>
<p>Dabei bin ich auf zwei unerwartete Probleme gestoßen^^:</p>
<p>Wenn ich mein Array mit Zahlen vollschreibe, wie kann ich das in meiner Konsolenanwendung direkt zur Kontrolle ausgeben lassen? Oder muss ich mir da immer eine Schleife bauen, die mir jedes Element einzeln ausspuckt?</p>
<p>Und:</p>
<p>Wie kann ich die Array-Länge über eine Abfrage bestimmen?<br />
Scheinbar (wenn ich den Kompilerfehler richtig interpretiere) muss die Länge des Arrays schon beim kompilieren bestimmt sein, muss ich also erst ein Array erstellen und dann nachträglich die Länge ändern?<br />
Wenn das so ist, wie geht das denn?</p>
<p>Gruß Panda</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348393</guid><dc:creator><![CDATA[RoterPanda]]></dc:creator><pubDate>Sun, 25 Aug 2013 11:40:07 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 12:55:49 GMT]]></title><description><![CDATA[<p>RoterPanda schrieb:</p>
<blockquote>
<p>Wenn ich mein Array mit Zahlen vollschreibe, wie kann ich das in meiner Konsolenanwendung direkt zur Kontrolle ausgeben lassen? Oder muss ich mir da immer eine Schleife bauen, die mir jedes Element einzeln ausspuckt?</p>
</blockquote>
<p>Ja, entweder eine Schleife oder du nutzt std::copy und std::ostream_iterator.<br />
Letzteres wäre:</p>
<pre><code>#include &lt;algorithm&gt; // std::copy
#include &lt;iterator&gt;  // std::ostream_iterator
...
// Gebe alle Elemente vom Typ int von array bis array + num_elem auf std::cout aus, getrennt durch Leerzeichen
std::copy(array, array + num_elem, std::ostream_iterator&lt;int&gt;(std::cout, ' '));
</code></pre>
<blockquote>
<p>Wie kann ich die Array-Länge über eine Abfrage bestimmen?<br />
Scheinbar (wenn ich den Kompilerfehler richtig interpretiere) muss die Länge des Arrays schon beim kompilieren bestimmt sein, muss ich also erst ein Array erstellen und dann nachträglich die Länge ändern?<br />
Wenn das so ist, wie geht das denn?</p>
</blockquote>
<p>Das ist richtig, entweder du frickelst da manuell herum, indem du dir mit new[] dynamisch Speicher holst (nicht zu empfehlen, wenn dir dein Buch/Tutorial/whatever sagt, dass du das so machen musst, hol dir ein anderes!).<br />
Oder du nimmst std::vector.<br />
Aus</p>
<pre><code>int array[5];
</code></pre>
<p>wird</p>
<pre><code>std::vector&lt;int&gt; array(5);
</code></pre>
<p>(#include &lt;vector&gt; erforderlich)<br />
Einen vector kannst du sogar dynamisch in der Größe anpassen (std::vector&lt;T&gt;::resize).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348396</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 25 Aug 2013 12:55:49 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 12:33:47 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/29873">@Nathan</a>: Da fehlen bei <code>ostream_iterator</code> noch die Template-Argumente.</p>
<blockquote>
<p>Wie kann ich die Array-Länge über eine Abfrage bestimmen?</p>
</blockquote>
<p>STL-Container haben die Methode <code>size()</code> , die die Anzahl der momentan enthaltenen Elemente zurückgibt.<br />
Bei dynamischen Containern (fast alle) wie <code>vector</code> , <code>deque</code> , <code>list</code> , usw. ist die Größe auch zur Laufzeit veränderbar. Da kannst du dann bspw. bequem per</p>
<pre><code>c.push_back( i );
</code></pre>
<p>Ein Element dranhängen, oder per</p>
<pre><code>c.pop_back();
</code></pre>
<p>Das letzte löschen.</p>
<blockquote>
<p>muss die Länge des Arrays schon beim kompilieren bestimmt sein</p>
</blockquote>
<p>Ja, bei <strong>echten</strong> Arrays schon*. Daher nimmt sich jeder, der ein dynamisches braucht, einen STL-Container.</p>
<p>~*: Bald - in circa einem Jahr nicht mehr. Aber dieses Geheimnis verrate ich dir nicht. Da musst du dich selbst informieren.~ :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348402</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 25 Aug 2013 12:33:47 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 12:55:22 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/29873">@Nathan</a>: Da fehlen bei <code>ostream_iterator</code> noch die Template-Argumente.</p>
</blockquote>
<p>Upps, vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348403</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 25 Aug 2013 12:55:22 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 12:58:42 GMT]]></title><description><![CDATA[<blockquote>
<p>#include &lt;algorithm&gt; // std::copy<br />
#include &lt;iterator&gt; // std::ostream_iterator<br />
...<br />
// Gebe alle Element von array bis array + num_elem auf std::cout aus, getrennt durch Leerzeichen<br />
std::copy(array, array + num_elem, std::ostream_iterator(std::cout, ' '));</p>
</blockquote>
<p>Warum so kompliziert? Seit C++11 gibt es sogenannte &quot;range based loop&quot;:</p>
<pre><code>#include &lt;iostream&gt;

int main()
{
   int test[10] = {1,2,3,4,5,6,7,8,9,10};

   for(int&amp; a: test)
   std::cout &lt;&lt; a &lt;&lt; &quot; &quot;;
   return 0;
}
</code></pre>
<pre><code>Wie kann ich die Array-Länge über eine Abfrage bestimmen?
</code></pre>
<p>Garnicht, da ein Array auf dem Stack gespeichert wird und die Größe daher zur Kompilierzeit bekannt sein muss.Um also dynamischen Speicher zu bekommen musst du alles auf dem Heap speichern.Dies erreichst du mit &quot;new&quot;.Die STL bietet dir allerdings nützliche Templateklassen(z.B. vector) wo du dich nicht darum kümmern musst(intern wird mit &quot;new&quot; gearbeitet).Bei weiteren Fragen stehe ich gerne zur Verfügung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348404</guid><dc:creator><![CDATA[Taulinator]]></dc:creator><pubDate>Sun, 25 Aug 2013 12:58:42 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 13:08:03 GMT]]></title><description><![CDATA[<p>Taulinator schrieb:</p>
<blockquote>
<pre><code>#include &lt;iostream&gt;

int main()
{
   int test[10] = {1,2,3,4,5,6,7,8,9,10};
   
   for(int&amp; a: test)
   std::cout &lt;&lt; a &lt;&lt; &quot; &quot;;
   return 0;
}
</code></pre>
</blockquote>
<p>Ich habe vergessen zu erwähnen, dass wenn du mit Containern arbeitest, dass du bei der for-Schleife mit auto arbeiten solltest, da dir das das Leben vereinfacht <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/2348407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348407</guid><dc:creator><![CDATA[Taulinator]]></dc:creator><pubDate>Sun, 25 Aug 2013 13:08:03 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 13:09:51 GMT]]></title><description><![CDATA[<p>Taulinator schrieb:</p>
<blockquote>
<blockquote>
<p>#include &lt;algorithm&gt; // std::copy<br />
#include &lt;iterator&gt; // std::ostream_iterator<br />
...<br />
// Gebe alle Element von array bis array + num_elem auf std::cout aus, getrennt durch Leerzeichen<br />
std::copy(array, array + num_elem, std::ostream_iterator(std::cout, ' '));</p>
</blockquote>
<p>Warum so kompliziert? Seit C++11 gibt es sogenannte &quot;range based loop&quot;:</p>
</blockquote>
<p>Falls der TE noch kein C++11 Support hat, wollte ich ihn nicht mit Lösungen verwirren, die bei ihm nicht funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348408</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 25 Aug 2013 13:09:51 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 13:39:26 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Taulinator schrieb:</p>
<blockquote>
<blockquote>
<p>#include &lt;algorithm&gt; // std::copy<br />
#include &lt;iterator&gt; // std::ostream_iterator<br />
...<br />
// Gebe alle Element von array bis array + num_elem auf std::cout aus, getrennt durch Leerzeichen<br />
std::copy(array, array + num_elem, std::ostream_iterator(std::cout, ' '));</p>
</blockquote>
<p>Warum so kompliziert? Seit C++11 gibt es sogenannte &quot;range based loop&quot;:</p>
</blockquote>
<p>Falls der TE noch kein C++11 Support hat, wollte ich ihn nicht mit Lösungen verwirren, die bei ihm nicht funktionieren.</p>
</blockquote>
<p>T'schuldigung mein Fehler...Solltest du es dennoch mit einer Schleife machen:</p>
<p>(Bei einem array ist die größe ja bekannt)</p>
<pre><code>#include &lt;iostream&gt;
int main()
{
int test [9] = {1,2,3,4,5,6,7,8,9};

for(int i = 0;i&lt;9;i++)
std::cout &lt;&lt; test[i] &lt;&lt; &quot; &quot;;
}
</code></pre>
<p>Solltest du es mit vector/list o.ä. machen:</p>
<pre><code>#include &lt;vector&gt;
#include &lt;iostream&gt;

main()
{
int eingabe;
std::vector&lt;int&gt; test;
for(int i = 0; i &lt; 10;i++)
{
std::cin &gt;&gt; eingabe;
test.push_back(eingabe);
}
for(std::vector&lt;int&gt;::iterator i = test.begin();i!=test.end();i++)
std::cout &lt;&lt; *i;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2348418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348418</guid><dc:creator><![CDATA[Taulinator]]></dc:creator><pubDate>Sun, 25 Aug 2013 13:39:26 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 13:42:34 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<blockquote>
<p>muss die Länge des Arrays schon beim kompilieren bestimmt sein</p>
</blockquote>
<p>Ja, bei <strong>echten</strong> Arrays schon*. Daher nimmt sich jeder, der ein dynamisches braucht, einen STL-Container.</p>
<p>~*: Bald - in circa einem Jahr nicht mehr. Aber dieses Geheimnis verrate ich dir nicht. Da musst du dich selbst informieren.~ :p</p>
</blockquote>
<p>Sprichst du von VLA's? Ich denke, die sind totaler Schrott?</p>
<p>PS: std::array gibts auch noch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348419</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sun, 25 Aug 2013 13:42:34 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 14:19:01 GMT]]></title><description><![CDATA[<p>Bei vector bevorzuge ich (pr c++11)</p>
<pre><code>for(std::size_t i = 0; i != test.size();i++)
    std::cout &lt;&lt; test[i];
}
</code></pre>
<p>so viel schöner zu lesen als Iterator-Syntax...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348434</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Sun, 25 Aug 2013 14:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 14:45:56 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Bei vector bevorzuge ich (pr c++11)</p>
<pre><code>for(std::size_t i = 0; i != test.size();i++)
    std::cout &lt;&lt; test[i];
}
</code></pre>
<p>so viel schöner zu lesen als Iterator-Syntax...</p>
</blockquote>
<p>Daher empfehle ich wärmstens, wenn C++11 akzeptiert wird, &quot;auto&quot; zu benutzen.</p>
<pre><code>vector test;
for(auto i: test)
cout &lt;&lt; i;
</code></pre>
<p>EDIT: Sorry hab mich beeilt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> habs jetzt verbessert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348441</guid><dc:creator><![CDATA[Taulinator]]></dc:creator><pubDate>Sun, 25 Aug 2013 14:45:56 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Sun, 25 Aug 2013 14:36:07 GMT]]></title><description><![CDATA[<p>Taulinator schrieb:</p>
<blockquote>
<p>otze schrieb:</p>
<blockquote>
<p>Bei vector bevorzuge ich (pr c++11)</p>
<pre><code>for(std::size_t i = 0; i != test.size();i++)
    std::cout &lt;&lt; test[i];
}
</code></pre>
<p>so viel schöner zu lesen als Iterator-Syntax...</p>
</blockquote>
<p>Daher empfehle ich wärmstens, wenn C++11 akzeptiert wird, &quot;auto&quot; zu benutzen.</p>
<pre><code>for(auto i : vector.begin())
cout &lt;&lt; i*;
</code></pre>
</blockquote>
<p>Ähm...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348442</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 25 Aug 2013 14:36:07 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 09:42:15 GMT]]></title><description><![CDATA[<p>Taulinator schrieb:</p>
<blockquote>
<p>Daher empfehle ich wärmstens, wenn C++11 akzeptiert wird, &quot;auto&quot; zu benutzen.</p>
<pre><code>vector test;
for(auto i: test)
cout &lt;&lt; i;
</code></pre>
<p>EDIT: Sorry hab mich beeilt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> habs jetzt verbessert</p>
</blockquote>
<p>Danke für die vielen Antworten, soweit funktionierts jetzt. Bin noch etwas am rumtüfteln.</p>
<p>Aber was ist denn &quot;auto&quot;?<br />
Sieht ja toll aus, aber was tut es? ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348560</guid><dc:creator><![CDATA[RoterPanda]]></dc:creator><pubDate>Mon, 26 Aug 2013 09:42:15 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 09:48:19 GMT]]></title><description><![CDATA[<p>auto kannst du da verwenden, wo der Compiler sich den Typ der Variablen selbst herleiten kann.</p>
<p>Also fast überall, wo du initialisierst (das fast kann man doch eigentlich streichen, oder?).</p>
<pre><code>auto i = 0; // int
auto f = 3.14f; // float
auto d = 3.14 // double
auto lolo = 25ll;
auto it = vec.begin(); // vector::iterator
auto s = std::sqrt(16.0);

auto fn = [](int i) {return std::vector&lt;std::thread&gt;(i, std::thread([](){for(auto i = 0; i &lt; 10; ++i){std::cout &lt;&lt; i &lt;&lt; std::endl;}}))};

auto v = fn();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2348561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348561</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 26 Aug 2013 09:48:19 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 11:03:39 GMT]]></title><description><![CDATA[<blockquote>
<pre><code>auto it = vec.begin(); // vector::iterator
</code></pre>
</blockquote>
<p>Bzw. <code>const_iterator</code> , falls <code>vec const</code> ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348573</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 26 Aug 2013 11:03:39 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 11:12:11 GMT]]></title><description><![CDATA[<p>Zu beachten:</p>
<pre><code>struct Foo;
Foo &amp;bla(); //Rückgabetyp Foo &amp;
auto f = bla(); //f hat aber den Typ Foo und nicht Foo &amp;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2348574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348574</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Mon, 26 Aug 2013 11:12:11 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 12:10:51 GMT]]></title><description><![CDATA[<p>Okay, ich denke das ignoriere ich erst mal irritiert etwas. Will erst mal sehen was ich tue.</p>
<p>Hab noch eine Frage:</p>
<p>Und zwar möchte nach irgendeiner Regel einen Vektor füllen. Sagen wir mal mit 2er Potenzen.<br />
Dann möchte ich den Inhalt des Vektors in einen anderen kopieren und um eine bestimmte Weite verschieben. Also z.B.:</p>
<p>[V1]: 1 2 4 8 16<br />
[V2]: 4 8 16 0 0 oder 0 0 1 2 4</p>
<p>Ich kann mir ja für jeden Fall, also Weite &lt;0 oder 0&lt;, eine eigene Schleife bauen (das hab ich jetzt auch gemacht), aber das sieht ziemlich beknackt aus.</p>
<p>Worauf das am Ende vorerst hinauslaufen soll:</p>
<p>Ein oder mehrere Vektoren werden mit einer relativ beliebigen Anzahl an Werten gefüllt.<br />
Dabei pendeln zwei Bereiche irgendwo in einem niedrigen Bereich und der dritte, mittlere enthält relativ hohe Zahlen.<br />
Z.B.:</p>
<p>[V1]: 3 6 3 1 4 60 60 60 60 3 4 6 7 5</p>
<p>Jetzt soll die Stelle gefunden werden an dem die hohen Zahlen anfangen.</p>
<p>Dann kommt ein zweiter Vektor mit fast zufälligen Zahlen:</p>
<p>[V2]: 3 8 2 60 60 60 60 4 3 7 2 4 9 1</p>
<p>Jetzt möchte ich den Inhalt des V2 um 2 Stellen nach rechts verschieben damit die hohen Bereiche übereinanderliegen. Und die dadurch entstehenden Lücken mit 0 auffüllen.</p>
<p>Gibts da einfachere Möglichkeiten als meine Schleifenbastellei? ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348590</guid><dc:creator><![CDATA[RoterPanda]]></dc:creator><pubDate>Mon, 26 Aug 2013 12:10:51 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 12:26:55 GMT]]></title><description><![CDATA[<p>Elemente verschieben geht nicht effizient in einem std::vector.<br />
Stattdessen kannst du deine Schleife leicht abändern:</p>
<pre><code>int offset = 2;
for (size_t i = 0; i &lt; V1.size() &amp;&amp; i &lt; V2.size() + offset; i++){
    tuwas(V1[i], V2[i + offset]);
}
</code></pre>
<p>Das mit den Ranges ist etwas anstrengend, da wird öfter mal der Index falsch sein. Du kannst dir auch mit einer Hilfsfunktion helfen:</p>
<pre><code>template&lt;class T&gt;
T getData(const vector&lt;T&gt; &amp;v, int index){ //gibt entweder v[index] zurück oder 0 wenn der Wert nicht existiert
    if (index &gt;= 0 &amp;&amp; index &lt; v.size())
        return v[index];
    return 0;
}

//und dann direkt:
for (int i = 0; i &lt; max(V1.size(), V2.size()); i++){
    tuwas(getData(V1, i), getData(V2, i + offset)); //hier darf i ein ungültiger Index sein
}
</code></pre>
<p>Sieht aus wie der Anfang einer Korrelationsanalyse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348592</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Mon, 26 Aug 2013 12:26:55 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 12:29:26 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<blockquote>
<p>muss die Länge des Arrays schon beim kompilieren bestimmt sein</p>
</blockquote>
<p>Ja, bei <strong>echten</strong> Arrays schon*. Daher nimmt sich jeder, der ein dynamisches braucht, einen STL-Container.</p>
<p>~*: Bald - in circa einem Jahr nicht mehr. Aber dieses Geheimnis verrate ich dir nicht. Da musst du dich selbst informieren.~ :p</p>
</blockquote>
<p>Sprichst du von VLA's? Ich denke, die sind totaler Schrott?</p>
<p>PS: std::array gibts auch noch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>VLAs Schroot? Wer erzählt soetwas? Ich finde VLAs klasse und benutze sie massiv in Code, der nur mit dem GCC übersetzt wird.<br />
Alternative wäre alloca, das funktioniert auch mit dem MSVC.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348593</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Mon, 26 Aug 2013 12:29:26 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 14:14:40 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>VLAs Schroot? Wer erzählt soetwas?</p>
</blockquote>
<p>U.a. ich.</p>
<p>Ethon schrieb:</p>
<blockquote>
<p>Ich finde VLAs klasse und benutze sie massiv in Code, der nur mit dem GCC übersetzt wird.</p>
</blockquote>
<p>VLA ist was für Deppen.<br />
VLA bieten für den Fehlerfall keine Auswertemöglichkeit.<br />
VLA lassen sich nicht initialisieren.<br />
VLA ist C, und davon hast du dann eben keine Ahnung.<br />
VLA ist was für Deppen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348607</guid><dc:creator><![CDATA[Wutz]]></dc:creator><pubDate>Mon, 26 Aug 2013 14:14:40 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 14:20:09 GMT]]></title><description><![CDATA[<p>Wutz schrieb:</p>
<blockquote>
<p>VLA bieten für den Fehlerfall keine Auswertemöglichkeit.<br />
VLA lassen sich nicht initialisieren.</p>
</blockquote>
<p>alloca bietet für den Fehlerfall auch keine Auswertemöglichkeit<br />
alloca lässt sich nicht initialisieren (oder genau gleich wie VLAs)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348609</guid><dc:creator><![CDATA[1a]]></dc:creator><pubDate>Mon, 26 Aug 2013 14:20:09 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 14:21:35 GMT]]></title><description><![CDATA[<p>Wutz schrieb:</p>
<blockquote>
<p>VLA bieten für den Fehlerfall keine Auswertemöglichkeit.</p>
</blockquote>
<p>Im Gegensatz zu alloca? Oder meinst du zu normalen Arrays?</p>
<blockquote>
<p>VLA lassen sich nicht initialisieren.</p>
</blockquote>
<p>Ist ein Nachteil gegenüber welcher VLA-Alternative?</p>
<p>Wutz schrieb:</p>
<blockquote>
<p>VLA ist was für Deppen.<br />
VLA ist C, und davon hast du dann eben keine Ahnung.<br />
VLA ist was für Deppen.</p>
</blockquote>
<p>Tourette-Syndrom?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348611</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 26 Aug 2013 14:21:35 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 16:01:52 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<p>Elemente verschieben geht nicht effizient in einem std::vector.<br />
Stattdessen kannst du deine Schleife leicht abändern:</p>
<p>*snip*</p>
<p>Sieht aus wie der Anfang einer Korrelationsanalyse.</p>
</blockquote>
<p>Hi,<br />
danke für das Feedback.<br />
Ich hab das jetzt glaube ich so ähnlich gemacht, nur ohne Hilfsfunktionen.<br />
Hab einen Index von 0 bis vector.size() laufen lassen, mit der Unterbedingung<br />
&quot;if(vector[i] &gt; Grenze)break;<br />
{<br />
Punkt = i;<br />
}&quot;</p>
<p>Das funktioniert so weit.<br />
Ich hab jetzt beide Vektoren mit irgendwas gefüllt, Hauptsache die beiden Vektoren hab in der Nähe einigermaßen ähnliche Werte damit das überschaubar bleibt.<br />
Der Inhalt vom 2. Vektor wird auch wunderbar so verschoben, dass der Wert, der als erstes den eingerichteten Grenzwert überschreitet unter dem im ersten Vektor liegt. <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>
<p>nwp3 schrieb:</p>
<blockquote>
<p>Sieht aus wie der Anfang einer Korrelationsanalyse.</p>
</blockquote>
<p>Das nicht <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>
<p>Nächster Schritt und worauf das wirklich am Ende raus laufen soll, und dabei brauch ich noch mal Tips^^:</p>
<p>Mein nächster Schritt ist jetzt das ganze für 2-dimensionale Vektoren zu erweitern um den Inhalt des zweiten Vektors nicht nur nach links oder rechts, sondern auch nach oben oder unten verschieben zu können.</p>
<p>Um dann am Ende (und da hab ich noch Null Ahnung) ein kleines Bild einlesen zu können, die Farbwerte pro Pixel in den Vektor schreiben zu können -&gt; einen bestimmten Farbwert finden zu können -&gt; ein zweites Bild einlesen zu können -&gt; dort den Farbwert ebenfalls finden zu können -&gt; die Pixel quasi verschieben und als neues Bild abspeichern zu können, in dem dann die gesuchte Farbe auf den gleichen Koordinaten liegt.</p>
<p>Ich vermute das geht am besten alles ganz anders und geschickter. Aber ich hoffe mal mein Weg funktioniert auch irgendwie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348654</guid><dc:creator><![CDATA[RoterPanda]]></dc:creator><pubDate>Mon, 26 Aug 2013 16:01:52 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 18:33:22 GMT]]></title><description><![CDATA[<p>Wutz schrieb:</p>
<blockquote>
<p>VLA bieten für den Fehlerfall keine Auswertemöglichkeit.</p>
</blockquote>
<p>Einen Stackoverflow kann man meines Wissens nach generell nicht sinnvoll behandeln, ob VLA oder nicht ist da voellig wurscht.</p>
<p>Wutz schrieb:</p>
<blockquote>
<p>VLA lassen sich nicht initialisieren.</p>
</blockquote>
<p>Das einzige, wofuer ich mir bisher VLAs gewuenscht habe, sind temporaere Buffer. Und die will ich sicherlich nicht initialisiert haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348689</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Mon, 26 Aug 2013 18:33:22 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 19:16:38 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Wutz schrieb:</p>
<blockquote>
<p>VLA bieten für den Fehlerfall keine Auswertemöglichkeit.</p>
</blockquote>
<p>Einen Stackoverflow kann man meines Wissens nach generell nicht sinnvoll behandeln, ob VLA oder nicht ist da voellig wurscht.</p>
</blockquote>
<p>Eben nicht wurscht, denn ohne VLA würde der Stackoverflow nicht auftreten. Außer du reservierst stattdessen einfach ein riesiges statisches Array auf dem Stack, was aber einfach nur falsch wäre. Das heißt, durch das VLA baust du eine (nicht bloß rein theoretische) Quelle für einen unbehandelbaren Fehler in das Programm ein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348703</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 26 Aug 2013 19:16:38 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Inhalt direkt ausgeben &#x2F; Variable Array-Größe on Mon, 26 Aug 2013 20:38:41 GMT]]></title><description><![CDATA[<p>Wutz schrieb:</p>
<blockquote>
<p>Ethon schrieb:</p>
<blockquote>
<p>VLAs Schroot? Wer erzählt soetwas?</p>
</blockquote>
<p>U.a. ich.</p>
</blockquote>
<p>Ok.</p>
<p>Wutz schrieb:</p>
<blockquote>
<p>VLA ist was für Deppen.</p>
</blockquote>
<p>Ok.</p>
<p>Wutz schrieb:</p>
<blockquote>
<p>VLA bieten für den Fehlerfall keine Auswertemöglichkeit.</p>
</blockquote>
<p>Ich programmiere keine Fehler. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Wutz schrieb:</p>
<blockquote>
<p>VLA lassen sich nicht initialisieren.</p>
</blockquote>
<p>Mir egal, ich schaffe soetwas auch ohne Syntax Sugar.</p>
<p>Wutz schrieb:</p>
<blockquote>
<p>VLA ist C, und davon hast du dann eben keine Ahnung.</p>
</blockquote>
<p>Ok.</p>
<p>Wutz schrieb:</p>
<blockquote>
<p>VLA ist was für Deppen.</p>
</blockquote>
<p>Ok.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348716</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Mon, 26 Aug 2013 20:38:41 GMT</pubDate></item></channel></rss>