<?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[dynamisch merhdimensionale matrizen]]></title><description><![CDATA[<p>ich bin sicher, sowas muss einfach schon x-mal gefragt worden sein, aber ich bin zu doof, es mit der suche zu schaffen:</p>
<p>ich hätte gerne eine klasse, die eine n-dimensionale Matrix zur verfügung stellt. Also dass ich eine Matrix anlege, und auch direkt deren Dimensionen und Typ der abzulegenden Variablen angebe. Wie das aussehen kann weiß ich selbst nicht so genau, auf sachen wie Matrix &lt; ... &gt; muss ich wohl noch was warten.<br />
Problem stellt für mich dar, die o.g. daten sinnvoll zu übergeben (vllt so: Matrix&lt;class type&gt;::Matrix(int dimension_eins ...); )</p>
<p>aber nächstes prob: Wie soll die Matrix die entsprechenden Container anlegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190651/dynamisch-merhdimensionale-matrizen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 18:37:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190651.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Aug 2007 19:05:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Fri, 24 Aug 2007 19:05:16 GMT]]></title><description><![CDATA[<p>ich bin sicher, sowas muss einfach schon x-mal gefragt worden sein, aber ich bin zu doof, es mit der suche zu schaffen:</p>
<p>ich hätte gerne eine klasse, die eine n-dimensionale Matrix zur verfügung stellt. Also dass ich eine Matrix anlege, und auch direkt deren Dimensionen und Typ der abzulegenden Variablen angebe. Wie das aussehen kann weiß ich selbst nicht so genau, auf sachen wie Matrix &lt; ... &gt; muss ich wohl noch was warten.<br />
Problem stellt für mich dar, die o.g. daten sinnvoll zu übergeben (vllt so: Matrix&lt;class type&gt;::Matrix(int dimension_eins ...); )</p>
<p>aber nächstes prob: Wie soll die Matrix die entsprechenden Container anlegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351417</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Fri, 24 Aug 2007 19:05:16 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Fri, 24 Aug 2007 19:55:13 GMT]]></title><description><![CDATA[<p>Wenn ich nicht grad gegen eine Wand renne, kann man das glaube ich so lösen (die SuFu kann ich übrigens auch nicht vernünftig bedienen :D):</p>
<pre><code class="language-cpp">template&lt;int dimension, class type&gt; class Matrix
{
     type data[dimension][dimension];
};
</code></pre>
<p>Ist es das was du wolltest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351453</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 24 Aug 2007 19:55:13 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Fri, 24 Aug 2007 20:18:33 GMT]]></title><description><![CDATA[<p>Speicher die n-Dimensionale Matrix als Array ab, kannst zum Beispiel std::vector oder boost::array dafür benutzen, dann musst du dich um die Speicherverwaltung nicht kümmern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351462</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Fri, 24 Aug 2007 20:18:33 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Fri, 24 Aug 2007 20:21:00 GMT]]></title><description><![CDATA[<p>hm... ich glaub, liegt an mir, dass ich mich unglücklich ausgedrüct habe:<br />
eher so:<br />
Matrix&lt;int&gt; m(int size_a, int size_b, int size_c ...)<br />
zugriff per<br />
m[size_a][size_b][size_c]...<br />
dh, dass die anzahl der dimensionen unbekannt ist, nicht deren größe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351463</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Fri, 24 Aug 2007 20:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Fri, 24 Aug 2007 20:30:21 GMT]]></title><description><![CDATA[<p>Öhm ... hatte hier mal nen Template dafür gepostet ... konntest die anzahl der zeilen und spalten dynamsich festlegen ... in nem anderen Forum: <a href="http://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=8081" rel="nofollow">http://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=8081</a> ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351467</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Fri, 24 Aug 2007 20:30:21 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Fri, 24 Aug 2007 20:52:37 GMT]]></title><description><![CDATA[<p>Mit Verlaub , euer Ehren,<br />
ich glaube er meint (so hat er es zumindest gesagt), dass er nicht die Anzahl an Elementen pro Spalte/Zeile angeben will, sondern auch die Anzahl an Dimensionen, d.h. dass es mehr als Spalten und Zeilen gibt. Sozusagen eine 3D-Matrix.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351481</guid><dc:creator><![CDATA[Hrmpf!]]></dc:creator><pubDate>Fri, 24 Aug 2007 20:52:37 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Fri, 24 Aug 2007 20:54:28 GMT]]></title><description><![CDATA[<p>das hat aber wieder nur 2 dimensionen <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=";D"
      alt="😉"
    /><br />
ich hätte lieber gerne wie gesagt n dimensionen: m[index_1][index_2]...[index_n]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351483</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Fri, 24 Aug 2007 20:54:28 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Fri, 24 Aug 2007 21:35:30 GMT]]></title><description><![CDATA[<p>Ach Gott ach Gott, das wird aber kompliziert <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=":-/"
      alt="😕"
    /> Über Templates lässt sich das in der Form nicht regeln lassen.. Nur mal so, wofür brauchst du eine n-dimensionale Matrix? Und soll sie &quot;quadratisch&quot; sein, also dass die Anzahl der Zeilen, Spalten und anderen Dimensionen immer gleich sind? Oder muss für jede Dimension angegeben werden, welche Ausmaße sie hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351505</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 24 Aug 2007 21:35:30 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Fri, 24 Aug 2007 21:36:04 GMT]]></title><description><![CDATA[<p>oO Dann schreib es dir doch kurz?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351507</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Fri, 24 Aug 2007 21:36:04 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Sat, 25 Aug 2007 09:20:16 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<p>oO Dann schreib es dir doch kurz?!</p>
</blockquote>
<p>warum so schlecht drauf? ich frag doch nur, ob einer ne idee hat...</p>
<p>Badestrand schrieb:</p>
<blockquote>
<p>Und soll sie &quot;quadratisch&quot; sein, also dass die Anzahl der Zeilen, Spalten und anderen Dimensionen immer gleich sind? Oder muss für jede Dimension angegeben werden, welche Ausmaße sie hat?</p>
</blockquote>
<p>nojaa, ich glaub, der arbeitsaufwand is für ne &quot;rechteckige&quot;, also net quadratisch, matrix nicht viel größer?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351677</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Sat, 25 Aug 2007 09:20:16 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Sat, 25 Aug 2007 09:30:25 GMT]]></title><description><![CDATA[<p>theoretisch willst du also das bsw. in einer 3D Matrix es noch eine z koordinate gibt, richtig? Dann sollte das schön über templates machbar sein ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351682</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 25 Aug 2007 09:30:25 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Sat, 25 Aug 2007 09:56:29 GMT]]></title><description><![CDATA[<p>piXelshooter schrieb:</p>
<blockquote>
<p>Badestrand schrieb:</p>
<blockquote>
<p>Und soll sie &quot;quadratisch&quot; sein, also dass die Anzahl der Zeilen, Spalten und anderen Dimensionen immer gleich sind? Oder muss für jede Dimension angegeben werden, welche Ausmaße sie hat?</p>
</blockquote>
<p>nojaa, ich glaub, der arbeitsaufwand is für ne &quot;rechteckige&quot;, also net quadratisch, matrix nicht viel größer?</p>
</blockquote>
<p>Naja, man müsste ja nicht nur angeben, wieviele Dimensionen die Matrix hat, sondern auch, wie &quot;groß&quot; jede Dimension ist, also eine variable Template-Parameterzahl, jedenfalls wenn die Größen als Template-Argument übergeben werden sollen <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="🙂"
    /><br />
Ich habs jedenfalls ausprobiert und ich kanns nicht <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/1351698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351698</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sat, 25 Aug 2007 09:56:29 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Sat, 25 Aug 2007 10:55:24 GMT]]></title><description><![CDATA[<p>nur so hingeschmiert (für den proxy wird man wohl lieber ne extra klasse machen etc), aber ungefähr so?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;vector&gt;
#include &lt;limits&gt;
#include &lt;assert.h&gt;
#include &quot;windows.h&quot;
#include &lt;string&gt; 

using namespace std; 

template&lt;class T, int dims&gt;
class DynMatrix {
public:
	unsigned* size;
	unsigned prodSizes;
	T* data;
	bool proxy;
	DynMatrix(DynMatrix&lt;T, dims+1&gt;&amp; matrix, T* data, unsigned prodSizes) {
		this-&gt;size = matrix.size + 1;
		this-&gt;data = data;
		this-&gt;proxy = true;
		this-&gt;prodSizes = prodSizes;
	}
public:
	DynMatrix(const unsigned* size) {
		this-&gt;size = new unsigned[dims];
		this-&gt;prodSizes = 1;
		this-&gt;proxy = false;
		for(unsigned i = 0; i &lt; dims; i++) {
			this-&gt;size[i] = size[i];
			this-&gt;prodSizes *= size[i];
		}
		data = new T[prodSizes];
	}

	~DynMatrix() {
		if(!proxy) {
			delete[] size;
			delete[] data;
		}
	}

	DynMatrix&lt;T, dims-1&gt; operator[] (unsigned pos)  {
		assert(pos &lt; size[0]);	
		return DynMatrix&lt;T, dims-1&gt;(*this, data + pos*(prodSizes / size[0]), prodSizes / size[0]);	
	}
};

template&lt;class T&gt;
class DynMatrix&lt;T, 1&gt; {
public:
	unsigned* size;
	unsigned prodSizes;
	T* data;
	bool proxy;
	DynMatrix(DynMatrix&lt;T, 2&gt;&amp; matrix, T* data, unsigned prodSizes) {
		this-&gt;size = matrix.size + 1;
		this-&gt;data = data;
		this-&gt;proxy = true;
		this-&gt;prodSizes = prodSizes;
	}
public:
	DynMatrix(const unsigned* size) {
		this-&gt;size = new unsigned[1];
		this-&gt;prodSizes = 1;
		this-&gt;proxy = false;
		for(unsigned i = 0; i &lt; 1; i++) {
			this-&gt;size[i] = size[i];
			this-&gt;prodSizes *= size[i];
		}
		data = new T[prodSizes];
	}

	~DynMatrix() {
		if(!proxy) {
			delete[] size;
			delete[] data;
		}
	}

	T&amp; operator[] (unsigned pos)  {
		assert(pos &lt; size[0]);	
		return data[pos];
	}
};

int main()
{	
	unsigned size[] = {5,4,3,2,5};
	DynMatrix&lt;unsigned, 5&gt; test(size);
	test[4][2][2][1][4] = 5;
	cout &lt;&lt; test[4][2][2][1][4];
	system(&quot;pause&quot;);
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1351718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351718</guid><dc:creator><![CDATA[life]]></dc:creator><pubDate>Sat, 25 Aug 2007 10:55:24 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Sat, 25 Aug 2007 11:30:29 GMT]]></title><description><![CDATA[<p>life schrieb:</p>
<blockquote>
<p>nur so hingeschmiert (für den proxy wird man wohl lieber ne extra klasse machen etc), aber ungefähr so?</p>
</blockquote>
<p>Ich dachte, die Anzahl der Dimensionen soll dynamisch veränderbar sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351740</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 25 Aug 2007 11:30:29 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Sat, 25 Aug 2007 14:24:50 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>life schrieb:</p>
<blockquote>
<p>nur so hingeschmiert (für den proxy wird man wohl lieber ne extra klasse machen etc), aber ungefähr so?</p>
</blockquote>
<p>Ich dachte, die Anzahl der Dimensionen soll dynamisch veränderbar sein?</p>
</blockquote>
<p>Dann macht ein operator[] in der Form keinen Sinn. Wenn man aber stattdessen eine Methode get(unsigned pos[]) o.Ä. macht, kann man die Dimension auch in den Konstruktor schieben..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351877</guid><dc:creator><![CDATA[life]]></dc:creator><pubDate>Sat, 25 Aug 2007 14:24:50 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Sat, 25 Aug 2007 14:45:33 GMT]]></title><description><![CDATA[<p>Öhm... macht <a href="http://boost.org/libs/multi_array/doc/user.html" rel="nofollow">Boost.multi_array</a> nicht genau das, wonach hier gesucht wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351894</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sat, 25 Aug 2007 14:45:33 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisch merhdimensionale matrizen on Sat, 25 Aug 2007 19:14:41 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6788">@life</a> yo sowas meinte ich ty<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15080">@The-Kenny</a> hm das was ich da versteh scheint auch das zu machen <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=";D"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352000</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Sat, 25 Aug 2007 19:14:41 GMT</pubDate></item></channel></rss>