<?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[(für mich) kniffliges speicherproblem]]></title><description><![CDATA[<p>hallo ich sitze seit tagen an einer extrem kniffligen sache, die ich erst posten wollte, die aber zu umfangreich ist, um sie wirklich anschaulich zu erklären. also will ich zwei lösungsversuche benennen und danach fragen, ob und wie es möglich wäre, diese umzusetzen.</p>
<p>ich habe eine folge von n zahlen und für diese folge muss ich viele berechnungen anstellen:</p>
<p>erstens habe ich anfangs einen array mit 1,2,3,4,5</p>
<p>dann muss ich aber berechnungen anstellen für<br />
1,2,3,4,5<br />
1,2,3,4<br />
1,2,3<br />
1,2<br />
1</p>
<p>dafür lege ich immer einen entsprechend langes array an.</p>
<p>das ist noch nicht das problem, aber:</p>
<p>ich muss nochmals die selben berechnungen durchführen für<br />
2,3,4,5<br />
2,3,4<br />
2,3<br />
2<br />
und für<br />
3,4,5<br />
3,4<br />
4<br />
für<br />
4,5<br />
4<br />
und für<br />
5</p>
<p>und alle diese ergebnisse müssen gespeichert werden, da ich sie mehrmals brauche...</p>
<p>allerdings habe ich zwei möglichkeiten,<br />
ich berechne nur 1,2,3,4,5 ; 1,2,3,4; 1,2,3; 1,2; 1; und summiere später bei bedarf auf, dann spare ich mir das berechnen und speichern für 2,3,4,5,....,5<br />
dann muss ich aber noch auf jeden arrayeintrag zurückgreifen können</p>
<p>oder</p>
<p>ich berechne alles und wandle jede lösung in einen string um (da ich danach nicht mehr damit rechnen muss) lege es in vektoren ab und rufe die lösungen nach bedarf ab.</p>
<p>in beiden fällen weiß ich nicht, wie ich all die lösungen abspeichere, dass es erstens nicht allzu aufwändig wird und zweitens leicht wiederfindbar....</p>
<p>ich hoffe man hat mein problem verstanden und kann mir tipps geben<br />
vielen dank im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/212655/für-mich-kniffliges-speicherproblem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 17:24:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/212655.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 May 2008 19:39:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 19:39:57 GMT]]></title><description><![CDATA[<p>hallo ich sitze seit tagen an einer extrem kniffligen sache, die ich erst posten wollte, die aber zu umfangreich ist, um sie wirklich anschaulich zu erklären. also will ich zwei lösungsversuche benennen und danach fragen, ob und wie es möglich wäre, diese umzusetzen.</p>
<p>ich habe eine folge von n zahlen und für diese folge muss ich viele berechnungen anstellen:</p>
<p>erstens habe ich anfangs einen array mit 1,2,3,4,5</p>
<p>dann muss ich aber berechnungen anstellen für<br />
1,2,3,4,5<br />
1,2,3,4<br />
1,2,3<br />
1,2<br />
1</p>
<p>dafür lege ich immer einen entsprechend langes array an.</p>
<p>das ist noch nicht das problem, aber:</p>
<p>ich muss nochmals die selben berechnungen durchführen für<br />
2,3,4,5<br />
2,3,4<br />
2,3<br />
2<br />
und für<br />
3,4,5<br />
3,4<br />
4<br />
für<br />
4,5<br />
4<br />
und für<br />
5</p>
<p>und alle diese ergebnisse müssen gespeichert werden, da ich sie mehrmals brauche...</p>
<p>allerdings habe ich zwei möglichkeiten,<br />
ich berechne nur 1,2,3,4,5 ; 1,2,3,4; 1,2,3; 1,2; 1; und summiere später bei bedarf auf, dann spare ich mir das berechnen und speichern für 2,3,4,5,....,5<br />
dann muss ich aber noch auf jeden arrayeintrag zurückgreifen können</p>
<p>oder</p>
<p>ich berechne alles und wandle jede lösung in einen string um (da ich danach nicht mehr damit rechnen muss) lege es in vektoren ab und rufe die lösungen nach bedarf ab.</p>
<p>in beiden fällen weiß ich nicht, wie ich all die lösungen abspeichere, dass es erstens nicht allzu aufwändig wird und zweitens leicht wiederfindbar....</p>
<p>ich hoffe man hat mein problem verstanden und kann mir tipps geben<br />
vielen dank im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505659</guid><dc:creator><![CDATA[karl-ludwig]]></dc:creator><pubDate>Thu, 08 May 2008 19:39:57 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 19:44:33 GMT]]></title><description><![CDATA[<p>Ich würde ein Array anlgegen.<br />
Und zwar das Startarray: { 1,2,3,4,5 }<br />
Und bei Bedarf auf das benötigte Element zugreifen.</p>
<p>Wäre nett wenn du mal ein bisschen Code zeigen könntest, bzw. die Aufgabenstellung.</p>
<p>Ich steh nehmlich auf knifflige Sachen!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505661</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Thu, 08 May 2008 19:44:33 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 19:52:28 GMT]]></title><description><![CDATA[<p>also um es nochmal ganz einfach zu sagen:</p>
<p>ich muss entweder</p>
<p>1.)<br />
bei der arraylänge n n verschiedene arrays erzeugen und die unbekannt vielen lösungen für die n arrays abspeichern.</p>
<ol start="2">
<li></li>
</ol>
<p>wie oben, aber mit aufaddieren und in string umwandeln.<br />
da wäre es kein problem, die lösungen einfach so zu speichern:<br />
speicher[0]=1..., 2..., 3,... 4,...<br />
speicher[1}=12..., 23....<br />
speicher[3]=123..., 234..., 345...<br />
speicher[4]=1234..., 2345...<br />
speicher[5]=12345...,</p>
<p>das wäre mit einem mehrdimensionalen vector kein problem, jedoch ist da das problem, wie ich einzelne elemente wieder finde... (da würde der anfang schon reichen bis zum ende, also zb von 123 ... bis ein element vor 234</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505668</guid><dc:creator><![CDATA[karl-ludwig]]></dc:creator><pubDate>Thu, 08 May 2008 19:52:28 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 20:34:01 GMT]]></title><description><![CDATA[<p>ok,ich bin etwas vorangekommen.</p>
<p>ich versuche, die zweite möglichkeit umzusetzen.</p>
<p>also gibt es jetzt etwas code:</p>
<pre><code class="language-cpp">int n;
int *arr;

cin &gt;&gt; n; 

std::stringstream str;   
vector&lt;vector&lt;string&gt; &gt; v ;

do
   {
   v.push_back(vector&lt;string&gt;()); 

   do
      {
      arr = new int[j+1];
      do
         {
         do
         {
         funktion(arr,j+1); //funktion verändert array, was sie genau mach ist eig egal
         for (int i=0;i&lt;j+1;i++)       
            str  &lt;&lt; arr[i];   
         v[j].push_back(str.str());
         str(&quot;&quot;);
      }while(funktion!=fertig);

   for (int i=0;i&lt;j+1;i++)  
      arr[i]++;
}while(arr[j+1] &lt; j+1)
j++;
}while(j&lt;n);
</code></pre>
<p>so ungefähr will ich es machen.<br />
also kann man sehen, wie und wo die elemente liegen.<br />
was aber komplettes neuland für mich ist und worum ich um hilfe bitten würde ist:<br />
im vector v[i][j] liegt dann in &quot;zeile&quot; i irgendwo das gesuchte element.<br />
wie kann ich das finden?</p>
<p>also beispielsweise</p>
<p>v[3]={ 123 132 312 213 345 543 534 }<br />
und ich brauche die elemente 132 bis ein element vor 543</p>
<p>ich habe wirklich überhaupt keine ahnung, daher frage ich und bitte ich um hilfe.<br />
vielen dank im voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505692</guid><dc:creator><![CDATA[klaus-ludwig]]></dc:creator><pubDate>Thu, 08 May 2008 20:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 20:37:59 GMT]]></title><description><![CDATA[<p>Die Konvertierung in Strings ist sehr ineffizient.<br />
Sind deine Funktionsergebnisse auch vom Typ int?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505695</guid><dc:creator><![CDATA[Kniffel]]></dc:creator><pubDate>Thu, 08 May 2008 20:37:59 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 20:44:54 GMT]]></title><description><![CDATA[<p>Kniffel schrieb:</p>
<blockquote>
<p>Die Konvertierung in Strings ist sehr ineffizient.<br />
Sind deine Funktionsergebnisse auch vom Typ int?</p>
</blockquote>
<p>ja, sind sie<br />
also die konvertierung muss nicht unbedingt sein.</p>
<p>ich muss die arrayeingräge nur verknüpfen und auf einen platz im vektor ablegen und ich muss diesen eintrag wiederfinden (aber durch den eintrag selbst nicht durch den index)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505702</guid><dc:creator><![CDATA[klaus-ludwig]]></dc:creator><pubDate>Thu, 08 May 2008 20:44:54 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 20:51:49 GMT]]></title><description><![CDATA[<p>klaus-ludwig schrieb:</p>
<blockquote>
<p>Kniffel schrieb:</p>
<blockquote>
<p>Die Konvertierung in Strings ist sehr ineffizient.<br />
Sind deine Funktionsergebnisse auch vom Typ int?</p>
</blockquote>
<p>ja, sind sie<br />
also die konvertierung muss nicht unbedingt sein.</p>
<p>ich muss die arrayeingräge nur verknüpfen und auf einen platz im vektor ablegen und ich muss diesen eintrag wiederfinden (aber durch den eintrag selbst nicht durch den index)</p>
</blockquote>
<p>also kann es auch andere wege geben, welchen aber, weiß ich nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505705</guid><dc:creator><![CDATA[klaus-ludwig]]></dc:creator><pubDate>Thu, 08 May 2008 20:51:49 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 21:16:29 GMT]]></title><description><![CDATA[<p>Ja, vom Typ int. Ich habe deinen Quellcode noch nicht gesehen, als ich die Antwort geschrieben habe.<br />
Wenn ich das richtig sehe, werden die Ergebnisse direkt in den Arrays gespeichert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505722</guid><dc:creator><![CDATA[Kniffel]]></dc:creator><pubDate>Thu, 08 May 2008 21:16:29 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 21:44:24 GMT]]></title><description><![CDATA[<p>So könnte man die Elemente indizieren:</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;

#define N 5

int main()
{
	int i, j=1, k=1;
	int arr[ ( N * ( N + 1 ) ) / 2 ]; 

	for ( i = 0; i &lt; ( N * ( N + 1 ) ) / 2; i++ )
	{
		if ( j &gt; N )
		{
			k++;
			j = k;
			puts(&quot;&quot;);
		}

		arr[i] = j;
		j++;

		printf(&quot;%d &quot;, arr[i] );
	}

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1505733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505733</guid><dc:creator><![CDATA[Kniffel]]></dc:creator><pubDate>Thu, 08 May 2008 21:44:24 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 21:54:49 GMT]]></title><description><![CDATA[<p>vielen dank.</p>
<p>nein, die es ist so:</p>
<p>array= ( 0 1 2 )</p>
<p>str &lt;&lt; (012)</p>
<p>v[2].push_back(str.str)</p>
<p>also in etwa</p>
<p>v[0][0]=0<br />
v[0][1]=1<br />
v[1][0]=01<br />
v[1][1]=10<br />
v[2][0]=012<br />
v[2][1]=123<br />
usw</p>
<p>und dann ein bestimmtes element suchen, ohne index, da die v verschieden lang sind und ich irgendwo in der mitte einen eintrag brauche...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505735</guid><dc:creator><![CDATA[klaus-ludwig]]></dc:creator><pubDate>Thu, 08 May 2008 21:54:49 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 22:12:59 GMT]]></title><description><![CDATA[<p>also ich habe mal einen versuch gemacht:</p>
<pre><code class="language-cpp">vector&lt;vector&lt;string&gt; &gt; v ; 
vector&lt;string&gt;::iterator p; 
v.push_back(vector&lt;string&gt;()); 
//vector füllen mit irgendwas

p = find(v[0].begin(),v[0].end(), 123);
</code></pre>
<p>da kommt aber eine fehlermeldung betreffend die letzte zeile &quot;no match for operator...&quot;</p>
<p>im grunde habe ich das gleiche gemacht, wie auf einer hilfeseite, aber ob das mehrdimensional so klappt, weiß ich nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505741</guid><dc:creator><![CDATA[klaus-ludwig]]></dc:creator><pubDate>Thu, 08 May 2008 22:12:59 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 22:14:23 GMT]]></title><description><![CDATA[<p>was ich vergessen habe:<br />
mit</p>
<p>p = find(<a href="http://v.at" rel="nofollow">v.at</a>(0).begin(),<a href="http://v.at" rel="nofollow">v.at</a>(0).end(), 123);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505742</guid><dc:creator><![CDATA[klaus-ludwig]]></dc:creator><pubDate>Thu, 08 May 2008 22:14:23 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Thu, 08 May 2008 22:37:10 GMT]]></title><description><![CDATA[<p>klaus-ludwig schrieb:</p>
<blockquote>
<p>was ich vergessen habe:<br />
mit</p>
<p>p = find(<a href="http://v.at" rel="nofollow">v.at</a>(0).begin(),<a href="http://v.at" rel="nofollow">v.at</a>(0).end(), 123);</p>
</blockquote>
<p>...<br />
funktioniert es auch nicht</p>
<p>...sorry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505747</guid><dc:creator><![CDATA[klaus-ludwig]]></dc:creator><pubDate>Thu, 08 May 2008 22:37:10 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Fri, 09 May 2008 05:53:26 GMT]]></title><description><![CDATA[<p>klaus-ludwig schrieb:</p>
<blockquote>
<pre><code class="language-cpp">p = find(v[0].begin(),v[0].end(), 123);
</code></pre>
</blockquote>
<p>Wozu die Umwandlung in Strings?</p>
<pre><code class="language-cpp">int arr[X];
for ( i=0; i&lt;X; i++ )
{
...
if ( arr[i] == 123 )
...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1505784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505784</guid><dc:creator><![CDATA[wieso nicht]]></dc:creator><pubDate>Fri, 09 May 2008 05:53:26 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Fri, 09 May 2008 06:39:26 GMT]]></title><description><![CDATA[<p>Nimm einen vector für alle Ergebnisse. In diesem Vektor kommen die Ergebnisse nach Länge von groß nach klein sortiert rein. Für einen Eingabevektor { 1, 2, 3, 4 } sieht das result array so aus:</p>
<pre><code>//Die Elemente der Länge 4
result[0] = berechne { 1, 2, 3, 4 }
//Die Elemente der Länge 3
result[1] = berechne { 1, 2, 3    }
result[2] = berechne {    2, 3, 4 }
//Die Elemente der Länge 2
result[3] = berechne { 1, 2       }
result[4] = berechne {    2, 3    }
result[5] = berechne {       3, 4 }
//Die Elemente der Länge 1
result[6] = berechne { 1          }
result[7] = berechne {    2       }
result[8] = berechne {       3    }
result[9] = berechne {          4 }
</code></pre>
<pre><code class="language-cpp">std::vector&lt;int&gt; input_vector;

std::vector&lt;int&gt; results(input_vector.size() * (input_vector.size() + 1) / 2);

//Ergibt das Ergebnis der Berechnung von index start_index bis 
//start_index + length -1
int &amp; result_element(int start_index, int length)
{
   int n = input_vector.size() - length;
   int base = n * (n+1) / 2;
   return results[base + start_index];
}

// Befüllen des Ergebnisses
for (int length = 1; length &lt;= input_vector.size(); ++i)
   for (int start = 0; start + length &lt;= input_vector.size(); ++start_index)
      result_element(start, length) = berechne(start, length);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1505800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505800</guid><dc:creator><![CDATA[Ponto]]></dc:creator><pubDate>Fri, 09 May 2008 06:39:26 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Fri, 09 May 2008 06:44:06 GMT]]></title><description><![CDATA[<p>ich hab hier alles nicht gelesen<br />
nur als ich die problemstellung sah - dachte ich sofort an eine liste {stack waere umstaendlicher}<br />
einfach ein liste anlegen {std::} und dort die zahlen reinpacken</p>
<p>und dann in ein loop</p>
<pre><code>while(numbers available)
    foreach number in list
        do anything with the number
    remove file from list
end while
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1505801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505801</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Fri, 09 May 2008 06:44:06 GMT</pubDate></item><item><title><![CDATA[Reply to (für mich) kniffliges speicherproblem on Fri, 09 May 2008 08:21:12 GMT]]></title><description><![CDATA[<p>vielen vielen dank für die vorschläge<br />
ihr habt mir sehr geholfen, danke!</p>
<p>hat mit der liste geklappt und mit pontos vorschlag.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505881</guid><dc:creator><![CDATA[klaus-ludwig]]></dc:creator><pubDate>Fri, 09 May 2008 08:21:12 GMT</pubDate></item></channel></rss>