<?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 deklarieren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte ein Array deklarieren und zwar indem ich ihm sage wie viele Werte es hat und dann einen Anfangspunkt, einen Endpunkt und eine Schrittweite angebe. Geht das in C bzw. C++? Also ich meine das in etwas so (Pseudocode):</p>
<pre><code class="language-cpp">int array[5]={von 1, in 1er Schritten, bis 5}
</code></pre>
<p>Versteht ihr was ich meine? In MATLAB gibts das so schön:</p>
<pre><code>array=(1:1:5);
</code></pre>
<p>Ich kenne leider keine Syntax in C++ dafür. Bin über jede Info glücklich.</p>
<p>Gruß,<br />
Laura</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/254008/array-deklarieren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 06:45:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/254008.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Nov 2009 12:18:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array deklarieren on Tue, 10 Nov 2009 12:18:35 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte ein Array deklarieren und zwar indem ich ihm sage wie viele Werte es hat und dann einen Anfangspunkt, einen Endpunkt und eine Schrittweite angebe. Geht das in C bzw. C++? Also ich meine das in etwas so (Pseudocode):</p>
<pre><code class="language-cpp">int array[5]={von 1, in 1er Schritten, bis 5}
</code></pre>
<p>Versteht ihr was ich meine? In MATLAB gibts das so schön:</p>
<pre><code>array=(1:1:5);
</code></pre>
<p>Ich kenne leider keine Syntax in C++ dafür. Bin über jede Info glücklich.</p>
<p>Gruß,<br />
Laura</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805973</guid><dc:creator><![CDATA[laura84]]></dc:creator><pubDate>Tue, 10 Nov 2009 12:18:35 GMT</pubDate></item><item><title><![CDATA[Reply to Array deklarieren on Tue, 10 Nov 2009 12:37:07 GMT]]></title><description><![CDATA[<p>Da musst du wohl eine kleine Schleife basteln (kannste ja zwecks Wiederverwendung in eine Funktion packen):</p>
<pre><code class="language-cpp">for(int i=0;i&lt;5;++i) myArray[i]=i+1;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1805983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805983</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 10 Nov 2009 12:37:07 GMT</pubDate></item><item><title><![CDATA[Reply to Array deklarieren on Tue, 10 Nov 2009 12:50:11 GMT]]></title><description><![CDATA[<p>Okay, verstehe. Was ist allerdings wenn ich immer in 1/16 Schritten gehen will und zwar von 0 bis 0.1? ++i zählt ja immer um 1 nach oben. Muss ich dann einfach zwei Schleifen basteln und der einen sagen zähl von 0 bis 0.1 in 1/16 Schritten und der anderen an welche Stelle im Array es geschrieben werden soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805991</guid><dc:creator><![CDATA[laura84]]></dc:creator><pubDate>Tue, 10 Nov 2009 12:50:11 GMT</pubDate></item><item><title><![CDATA[Reply to Array deklarieren on Tue, 10 Nov 2009 13:19:23 GMT]]></title><description><![CDATA[<p>Passt sowas hier vielleicht?</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

void func(std::vector&lt;double&gt;&amp; vec,double range_min,double range_max,int steps) {
	for(int i=0;i&lt;steps+1;++i) {
		vec.push_back(i*(range_max-range_min)/steps);
	}
}

int main() {
	std::vector&lt;double&gt; vec;
	func(vec,0.,1.,16);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1806004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806004</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 10 Nov 2009 13:19:23 GMT</pubDate></item><item><title><![CDATA[Reply to Array deklarieren on Tue, 10 Nov 2009 13:36:50 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Passt sowas hier vielleicht?</p>
</blockquote>
<p>Das kann schon sein, genau kann ich es aber nicht sagen, da ich den Code nicht so richtig verstehe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Also du erschaffst einen Vector, der ja ein dynamisches Array ist, richtig?<br />
Die Werte, die du hier</p>
<pre><code class="language-cpp">func(vec,0.,1.,16);
</code></pre>
<p>übergibst, was sollen die Punkte?<br />
Und kann ich bei &quot;steps&quot; dann nicht einfach &quot;1/16&quot; eingeben? Also so:</p>
<pre><code class="language-cpp">func(vec,0,0.1,1/16);
</code></pre>
<p>Die Rechnung in der Funktion verstehe ich auch nicht. Die rechnet ja immer den selben Wert aus und multipliziert ihn dann mit 1, 2, 3, ....<br />
Wozu braucht man dass denn?</p>
<p>Sorry wenn ich das nicht verstehe, aber bitte hab Nachsicht, ich programmier noch nicht sehr lange. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1806023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806023</guid><dc:creator><![CDATA[laura84]]></dc:creator><pubDate>Tue, 10 Nov 2009 13:36:50 GMT</pubDate></item><item><title><![CDATA[Reply to Array deklarieren on Tue, 10 Nov 2009 13:55:33 GMT]]></title><description><![CDATA[<p>laura84 schrieb:</p>
<blockquote>
<p>Und kann ich bei &quot;steps&quot; dann nicht einfach &quot;1/16&quot; eingeben? Also so:</p>
<pre><code class="language-cpp">func(vec,0,0.1,1/16);
</code></pre>
</blockquote>
<p>Einfache Antwort: Klar. Nur halt 1.0/16.0. Und step müßte ein double sein.</p>
<p>Richttige Antwort: Nein! Kommazahlen als step bringen Dich in Teufels Küche. Wenn Du mal von 0 bis 1 mit step 0.05 und mit step 0.1 gemacht hast, weißt Du, was eich meine. Rundungsfehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1806032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806032</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 10 Nov 2009 13:55:33 GMT</pubDate></item><item><title><![CDATA[Reply to Array deklarieren on Tue, 10 Nov 2009 14:14:27 GMT]]></title><description><![CDATA[<p>Was meine Funktion macht, ist Folgendes:</p>
<p>Du gibst an, von wo bis wo dein Wertebereich gehen soll (also z.B. von 0.0 bis 1.0). Und du gibst an, wieviele Schritte verwendet werden sollen. Eine 16 bedeutet, dass du in 1/16er Schritten das Array bzw. den vector füllen willst. Das sind dann 17 Elemente, die dem vector hinzugefügt werden, damit es auch von 0.0 bis glatt 1.0 geht (und nicht bis 1.0-1.0/16).</p>
<p>Vielleicht wird es deutlicher, wenn du mal eine Ausgabe siehst:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

void func(std::vector&lt;double&gt;&amp; vec,double range_min,double range_max,int steps) {
	for(int i=0;i&lt;steps+1;++i) {
		vec.push_back(i*(range_max-range_min)/steps);
	}
}

int main() {
	std::vector&lt;double&gt; vec;
	func(vec,0.,1.,16);
	for(unsigned int i=0;i&lt;vec.size();++i) std::cout &lt;&lt; vec[i] &lt;&lt; std::endl;
	system(&quot;pause&quot;);
}
</code></pre>
<p>Wenn das nicht das ist, was du wolltest, sag bescheid (und erklär es nochmal genau).</p>
<p><strong>std::vector</strong> ist quasi ein dynamisches Array, ja. Das ist hier einfach komfortabler, als ein Array mit new zu deklarieren (sonst müsste der Aufrufende selbst die Anzahl der Elemente bestimmen und sich um das Freigeben des Speichers kümmern).</p>
<p><strong>Die Punkte</strong> bedeuten einfach, dass wir hier double-Literale (oder -Konstanten) notieren.</p>
<pre><code class="language-cpp">5    //integer-Literal
5.   //double-Literal
5.0  //identisch mit 5. (wenn es für dich lesbarer ist, schreib ruhig 5.0)
.5   //auch ein double-Literal
0.5  //identisch mit .5)
5.f  //float-Literal
5.0f //identisch mit 5.f
</code></pre>
<p>Das kann wichtig sein, wenn du mit solchen Werten rechnest:</p>
<pre><code class="language-cpp">//falsch:

double d=1/2;   //da du hier mit integer-Werten rechnest, wird eine Ganzzahlendivision durchgeführt, die 0 ergibt (1 durch 2 = 0 Rest 1).
                //Die 0 wird implizit nach double (Typ von d) gecastet (ist dann 0.0) und man wundert sich, warum 1/2 plötzlich 0 sein soll. ;)

//richtig:

double d=1.0/2;  //da hier ein Element des Ausdrucks ein double-Wert ist, ist das Ergebnis des Ausdrucks auch vom Typ double. Das Ergebnis ist dann 0.5, wie erwartet.
</code></pre>
<p>EDIT: Und system(&quot;pause&quot;) habe ich jetzt nur der Einfachheit halber da 'reingepackt. Hier in den FAQ kannst du nachlesen, warum man das lieber nicht machen sollte und welche Alternataiven es gibt (für erste Gehversuche, und um dich nicht unnötig zu verwirren, finde ich es aber in Ordnung).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1806035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806035</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 10 Nov 2009 14:14:27 GMT</pubDate></item><item><title><![CDATA[Reply to Array deklarieren on Tue, 10 Nov 2009 14:17:23 GMT]]></title><description><![CDATA[<p>Wahnsinn, vielen vielen Dank!!!</p>
<p>Das ist genau das was ich brauche. Und die Erklärung dazu war perfekt. Jetzt verstehe ich es und noch so einiges mehr.</p>
<p>Danke für eure Mühen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1806043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806043</guid><dc:creator><![CDATA[laura84]]></dc:creator><pubDate>Tue, 10 Nov 2009 14:17:23 GMT</pubDate></item><item><title><![CDATA[Reply to Array deklarieren on Tue, 10 Nov 2009 14:33:00 GMT]]></title><description><![CDATA[<p>Gern geschehen.</p>
<p>Falls du mehr über STL-Container wie std::vector wissen willst, gibt es hier einen netten Artikel zu dem Thema:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-143816.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-143816.html</a><br />
(Teil 2+3 sind verlinkt)</p>
<p>Aber lass dich nicht vom Artikel erschlagen. Es ist einfacher, als es vielleicht zunächst den Anschein hat, und bei einem std::vector kannst du auch erstmal auf Iteratoren verzichten und ihn fast wie ein normales Array behandeln. Trotzdem ist es vielleicht ganz interessant, mal in die Möglichkeiten 'reinzuschnuppern (so 'ne map kann richtig praktisch sein).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1806056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806056</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 10 Nov 2009 14:33:00 GMT</pubDate></item></channel></rss>