<?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[3D std::vector]]></title><description><![CDATA[<p>hi,<br />
wie kann ich einen 3d std::vector verwenden? also dabei ist 1dim: spalte, 2dim: reihe, 3dim: tiefe...</p>
<p>wie kann ich dann zeilen gegen spalten tauschen?<br />
wär überhaupt std::vector mit passender klasse dafür am besten geeignet?</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/124571/3d-std-vector</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 23:42:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/124571.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 28 Oct 2005 17:51:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 3D std::vector on Fri, 28 Oct 2005 17:51:56 GMT]]></title><description><![CDATA[<p>hi,<br />
wie kann ich einen 3d std::vector verwenden? also dabei ist 1dim: spalte, 2dim: reihe, 3dim: tiefe...</p>
<p>wie kann ich dann zeilen gegen spalten tauschen?<br />
wär überhaupt std::vector mit passender klasse dafür am besten geeignet?</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/902980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/902980</guid><dc:creator><![CDATA[geri]]></dc:creator><pubDate>Fri, 28 Oct 2005 17:51:56 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Fri, 28 Oct 2005 18:07:47 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class 3DRaum
{
    private:
        vector&lt;T&gt; Y;
        vector&lt;T&gt; X;
        vector&lt;T&gt; Z;
    public:
        void XYvertauschen()
        {
            X.swap(Y);
        }
}
</code></pre>
<p>Sowas in der Art?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/902991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/902991</guid><dc:creator><![CDATA[Panke]]></dc:creator><pubDate>Fri, 28 Oct 2005 18:07:47 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Fri, 28 Oct 2005 18:30:08 GMT]]></title><description><![CDATA[<p>schaut schon mal brauchbar aus...<br />
ich würd aber auch so einen operator verwenden:<br />
3DRaum[x][y][z] ...</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903004</guid><dc:creator><![CDATA[geri]]></dc:creator><pubDate>Fri, 28 Oct 2005 18:30:08 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Fri, 28 Oct 2005 18:48:19 GMT]]></title><description><![CDATA[<p>vector&lt; vector&lt; vector&lt; Type &gt; &gt; &gt; mein3dVektor;</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903028</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Fri, 28 Oct 2005 18:48:19 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Fri, 28 Oct 2005 18:56:00 GMT]]></title><description><![CDATA[<p>wie kann hier dann zeilen gegen spalten tauschen?</p>
<pre><code class="language-cpp">vector&lt; vector&lt; vector&lt; int &gt; &gt; &gt; mein3dVektor;
</code></pre>
<p>1 dimension = row<br />
2 dimension = column<br />
3 dimension = depth</p>
<p>will row0 bis 2 gegen column0 bis 2 tauschen....</p>
<p>wie klappt das hier am einfachsten?</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903040</guid><dc:creator><![CDATA[geri]]></dc:creator><pubDate>Fri, 28 Oct 2005 18:56:00 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Fri, 28 Oct 2005 20:24:30 GMT]]></title><description><![CDATA[<p>Das ist irgendwie unsinnig. Wenn du so willst indiziert &quot;row&quot; (spricht eigentlich etwas gegen deutsche Wörter wie Reihe, Zeile und Tiefe?) ein zweidimensionales Feld von Integern, während &quot;column&quot; nur eindimensionale Felder indiziert. Wie willst du denn bitte Objekte vertauschen die verschiedene Dimensionen haben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903089</guid><dc:creator><![CDATA[japro]]></dc:creator><pubDate>Fri, 28 Oct 2005 20:24:30 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Fri, 28 Oct 2005 21:53:04 GMT]]></title><description><![CDATA[<p>hi, habs nun so, jedoch soll der code etwas schöner werden....weil lesbar ist das ganze ja nicht grad schön...hm...<br />
vielleicht doch was mit swap() ?</p>
<pre><code class="language-cpp">class Cube
{
private:           // column, row depth, faces
	int colors[3][3][3][6];

public:
    Cube()
    {
		for (int x=0;x&lt;3;x++) for (int y=0;y&lt;3;y++) for (int z=0;z&lt;3;z++) for (int face=0;face&lt;6;face++) colors[x][y][z][face] = rand() % 6;
    }

	void swap_row_in_depth(int row, int direction)
	{
                /* zB.:
                123
                456       Tiefen
                789

                Spalten 

                nach 90° Drehung:  
                741
                852
                963
                */

		int colors_help[3][3][3][6];	

		int u = 2;
		for(int depth=0;depth&lt;3;depth++) // Schleife von Tiefe0 - Tiefe2
		{
			for (int column=0;column&lt;3;column++) // Schleife von Spalte0 - Spalte2
			{
				if(direction) // Spalte0 -&gt; Tiefe0
					memcpy(&amp;colors_help[column][row][u],&amp;colors[depth][row][column],sizeof(int) *6);
				else // Tiefe0  -&gt; Spalte0
					memcpy(&amp;colors_help[u][row][column],&amp;colors[column][row][depth],sizeof(int) *6);
			}
			u--;
		}

		for (int x=0;x&lt;3;x++) for (int z=0;z&lt;3;z++) {
			memcpy(&amp;colors[x][row][z],&amp;colors_help[x][row][z],sizeof(int) *6);
		}
	}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/903117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903117</guid><dc:creator><![CDATA[geri]]></dc:creator><pubDate>Fri, 28 Oct 2005 21:53:04 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Fri, 28 Oct 2005 22:00:49 GMT]]></title><description><![CDATA[<p>Der std::vector hat nichts mit dem Vektor aus der Mathematik zu tun, daher ist es auch kein Wunder, dass du Probleme bekommst. Verwende wie jeder andere auch eine Klasse die einen Vektor im mathematischen Sinn darstellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903124</guid><dc:creator><![CDATA[User---]]></dc:creator><pubDate>Fri, 28 Oct 2005 22:00:49 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Fri, 28 Oct 2005 22:54:21 GMT]]></title><description><![CDATA[<p>welche klasse wäre da geeignet?<br />
cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903134</guid><dc:creator><![CDATA[geri]]></dc:creator><pubDate>Fri, 28 Oct 2005 22:54:21 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Fri, 28 Oct 2005 22:57:23 GMT]]></title><description><![CDATA[<p>macht man das nicht normalerweise mit matrizen??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903135</guid><dc:creator><![CDATA[nub2]]></dc:creator><pubDate>Fri, 28 Oct 2005 22:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Sat, 29 Oct 2005 18:08:04 GMT]]></title><description><![CDATA[<p>Normalerweise schreibt man sich seine Vectorklasse selbst</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903529</guid><dc:creator><![CDATA[Glamdrink]]></dc:creator><pubDate>Sat, 29 Oct 2005 18:08:04 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Sat, 29 Oct 2005 18:39:36 GMT]]></title><description><![CDATA[<p>Willst du jetzt einen n-dimensionalen Vektor oder Raum? Wenn es ein n-dimensionaler Vektor sein soll dann ist std::vector das was du suchst. Ich glaub du willst aber einen Raum. Du könntest etwas wie folgt versuchen.</p>
<pre><code class="language-cpp">template&lt;class T&gt;
class Raum3D
{
public:
  Raum3D(size_t x, size_t y, size_t z){
    dimension[0] = 1;
    dimension[1] = x;
    dimension[2] = x*y;
    data = new T[x*y*z];
  }
  T&amp;operator()(size_t x, size_t y, size_t z){
    return data[x*dimension[0] + y*dimension[1] + z*dimension[2&rsqb;&rsqb;;
  }
  void swap_x_dim_with_y_dim(){
    std::swap(dimension[0], dimension[1]);
  }
private:
  size_t dimension[3];
  T*data;
};
</code></pre>
<p>Für einen 2 dimensionalen Raum lassen sich sämtliche Rotation und Spieglungen auf diese Weise virtuel implementieren. Für einen 3 dimensionalen Raum müsste dieser Trick auch funktionieren. Hab es allerdings noch nicht ausprobiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903544</guid><dc:creator><![CDATA[Ben04]]></dc:creator><pubDate>Sat, 29 Oct 2005 18:39:36 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Sat, 29 Oct 2005 19:09:03 GMT]]></title><description><![CDATA[<p>danke mal...was was machst du hier?</p>
<pre><code class="language-cpp">dimension[0] = 1;
dimension[1] = x;
dimension[2] = x*y;
</code></pre>
<p>eigentlich verwende ich in meinem Beispiel einen 4D vektor...<br />
1ste dimension = spalten<br />
2te dimension = reihen<br />
3te dimension = tiefen<br />
4te dimension = faces</p>
<blockquote>
<p>Willst du jetzt einen n-dimensionalen Vektor oder Raum</p>
</blockquote>
<p>was war da noch mal der unterschied?</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903561</guid><dc:creator><![CDATA[geri]]></dc:creator><pubDate>Sat, 29 Oct 2005 19:09:03 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Sun, 30 Oct 2005 00:36:06 GMT]]></title><description><![CDATA[<p>-&gt; ein n-dimensionaler Vektorraum wird von n n-dimensionalen Vektoren aufgespannt<br />
dann ja...</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903661</guid><dc:creator><![CDATA[geri]]></dc:creator><pubDate>Sun, 30 Oct 2005 00:36:06 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Sun, 30 Oct 2005 01:22:01 GMT]]></title><description><![CDATA[<p>hi, bräuchte aber:</p>
<pre><code class="language-cpp">size_t dimension[3][3][3];
</code></pre>
<p>und da dann ein swap....</p>
<p>oder vielleicht mit Boost Multidimensional Array was hübsches bauen...<br />
[url]<br />
<a href="http://boost.org/libs/multi_array/doc/user.html" rel="nofollow">http://boost.org/libs/multi_array/doc/user.html</a><br />
[/url]</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903670</guid><dc:creator><![CDATA[geri]]></dc:creator><pubDate>Sun, 30 Oct 2005 01:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to 3D std::vector on Sun, 30 Oct 2005 02:28:06 GMT]]></title><description><![CDATA[<p>hab mir das beispiel noch mal genau angeschaut....ist aber eigentlich e brauchbar bei dem was ich vor habe...<br />
dimension1=spalten<br />
dimension2=reihen<br />
dimension3=tiefen</p>
<pre><code class="language-cpp">template&lt;class T&gt;
class Raum3D
{
public:
  Raum3D(size_t x, size_t y, size_t z){
    dimension[0] = 1;
    dimension[1] = x;
    dimension[2] = x*y;
    data = new T[x*y*z];
	size = x*y*z;
  }
  ~Raum3D(){
	  delete[] data;
  }
  T&amp;operator()(size_t x, size_t y, size_t z){
    return data[x*dimension[0] + y*dimension[1] + z*dimension[2&rsqb;&rsqb;;
  }
  void init_random(){
	  	for(int i=0;i&lt;size;i++)
		  data[i] = rand() % 6;
  }
  void swap_x_dim_with_y_dim(){
    std::swap(dimension[0], dimension[1]);
  }
  void print_array(){
	  for(int i=0;i&lt;size;i++)
		  cout &lt;&lt; data[i];
  }
private:
  size_t dimension[3];
  size_t size;
  T*data;
};

int main()
{
	Raum3D&lt;int&gt; Raum3D(3, 3, 3);
	Raum3D.init_random();

	for(int x=0;x&lt;3;x++){
		cout &lt;&lt; '\n';
			for(int y=0;y&lt;3;y++){ 
				cout &lt;&lt; '\n';
					for(int z=0;z&lt;3;z++){
						cout &lt;&lt; Raum3D(x,y,z);
					}
			}
	}

	Raum3D.swap_x_dim_with_y_dim();

	cout &lt;&lt; endl &lt;&lt; endl;

	for(int x=0;x&lt;3;x++){
		cout &lt;&lt; '\n';
			for(int y=0;y&lt;3;y++){ 
				cout &lt;&lt; '\n';
					for(int z=0;z&lt;3;z++){
						cout &lt;&lt; Raum3D(x,y,z);
					}
			}
	}

	cin.get();
    return 0;
}
</code></pre>
<p>ausgabe:<br />
523<br />
410<br />
054</p>
<p>550<br />
532<br />
014</p>
<p>453<br />
413<br />
423</p>
<p>523<br />
550<br />
453</p>
<p>410<br />
532<br />
413</p>
<p>054<br />
014<br />
423</p>
<p>möcht jetzt in diesem block(reihe[0]):<br />
523<br />
410<br />
054</p>
<p>ändern zu -&gt; entspricht einer 90° drehung nach im uhrzeigersinn...<br />
045<br />
512<br />
403</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903671</guid><dc:creator><![CDATA[geri]]></dc:creator><pubDate>Sun, 30 Oct 2005 02:28:06 GMT</pubDate></item></channel></rss>