<?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[Map of arrays erstellen]]></title><description><![CDATA[<p>Hi Leute ich würde gerne eine Map of Arrays erstellen.</p>
<p>Ich habe bereits eine Normale Map erstellt hier mal die Classe:</p>
<pre><code>class PtNotEntry
{

public:
	void addNode(unsigned long level_, unsigned long cellindex_, int triangle_, const Point&amp; projected_, double dist_)
	{
		level = level_;
		cellindex = cellindex_;
		dist=dist_;
		triangle=triangle_;
		projected=projected_;
	}

	double GetDist() const {return dist;}

	unsigned long getLevel() const { return level;}
	unsigned long getCellIndex()const { return cellindex;}
	Point getProjected() const{ return projected; }
	int getTriangle() const { return triangle;}

		unsigned long level; 
		unsigned long cellindex;
		double dist;
		int triangle;
		Point projected;

};
</code></pre>
<p>ich erzeuge hiermit die Map.</p>
<pre><code>map&lt;unsigned long, PtNotEntry&gt; projectNotInTriangleMap;
</code></pre>
<p>und hiermit füge ich was hinzu:</p>
<pre><code>entry.addNode(cell-&gt;getLevel(), cell-&gt;getIndex(), *j, projected, sqNorm(makeVector(projected, *(cell-&gt;getCellNode(i)))) );
										projectInTriangleMap.insert(make_pair(cell-&gt;getCellNode(i)-&gt;getIndex(), entry));
</code></pre>
<p>Ich braüchte jetzt aber eine map in der ich zuerst ein Level reinspeicher und dann das was ich da oben getan habe. Ich weiß einfach nicht wie ich das machen soll.</p>
<p>Edit1:</p>
<p>Natürlich erzeuge ich ein Object entry der Klasse zuerst <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/280944/map-of-arrays-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 22:37:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/280944.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Jan 2011 13:20:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 13:24:42 GMT]]></title><description><![CDATA[<p>Hi Leute ich würde gerne eine Map of Arrays erstellen.</p>
<p>Ich habe bereits eine Normale Map erstellt hier mal die Classe:</p>
<pre><code>class PtNotEntry
{

public:
	void addNode(unsigned long level_, unsigned long cellindex_, int triangle_, const Point&amp; projected_, double dist_)
	{
		level = level_;
		cellindex = cellindex_;
		dist=dist_;
		triangle=triangle_;
		projected=projected_;
	}

	double GetDist() const {return dist;}

	unsigned long getLevel() const { return level;}
	unsigned long getCellIndex()const { return cellindex;}
	Point getProjected() const{ return projected; }
	int getTriangle() const { return triangle;}

		unsigned long level; 
		unsigned long cellindex;
		double dist;
		int triangle;
		Point projected;

};
</code></pre>
<p>ich erzeuge hiermit die Map.</p>
<pre><code>map&lt;unsigned long, PtNotEntry&gt; projectNotInTriangleMap;
</code></pre>
<p>und hiermit füge ich was hinzu:</p>
<pre><code>entry.addNode(cell-&gt;getLevel(), cell-&gt;getIndex(), *j, projected, sqNorm(makeVector(projected, *(cell-&gt;getCellNode(i)))) );
										projectInTriangleMap.insert(make_pair(cell-&gt;getCellNode(i)-&gt;getIndex(), entry));
</code></pre>
<p>Ich braüchte jetzt aber eine map in der ich zuerst ein Level reinspeicher und dann das was ich da oben getan habe. Ich weiß einfach nicht wie ich das machen soll.</p>
<p>Edit1:</p>
<p>Natürlich erzeuge ich ein Object entry der Klasse zuerst <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2011104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011104</guid><dc:creator><![CDATA[Necrofighter]]></dc:creator><pubDate>Mon, 24 Jan 2011 13:24:42 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 13:30:04 GMT]]></title><description><![CDATA[<p>Ich hab nicht ganz verstanden, was genau du machen willst.<br />
Aber zu Deiner Klasse PtNotEntry:<br />
- alle Member sind public<br />
- addNode sollte wohl eher ein Konstruktor sein - zumindest sieht es danach aus <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>Möchtest du sowas in der Art:?</p>
<pre><code class="language-cpp">std::map&lt;unsigned int, std::vector&lt;PtNotEntry&gt; &gt; projectNotInTriangleMap;
</code></pre>
<p>Wie gesagt, mir ist noch nicht ganz klar was du genau machen möchtest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011111</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Mon, 24 Jan 2011 13:30:04 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 13:34:26 GMT]]></title><description><![CDATA[<p>Also im Moment sieht die map so aus : First ist der KnotenIndex<br />
Seceond enthält( Level,CellIndex,Distance<br />
und die neuen Koordinaten.</p>
<p>Ich brauche aber: bevor das first komt das Level als auswahl. also quasi für jedes Level eine eigene Map in der Map.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011116</guid><dc:creator><![CDATA[Necrofighter]]></dc:creator><pubDate>Mon, 24 Jan 2011 13:34:26 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 13:41:21 GMT]]></title><description><![CDATA[<p>Necrofighter schrieb:</p>
<blockquote>
<p>Ich brauche aber: bevor das first komt das Level als auswahl. also quasi für jedes Level eine eigene Map in der Map.</p>
</blockquote>
<p>Na dann eben:</p>
<pre><code class="language-cpp">std::map&lt;unsigned int, std::map&lt;unsigned int, PtNotEntry&gt; &gt; levelIdToMapOfLevel;
//          ^levelId     ^map of level ^KnotenIndex
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2011123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011123</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Mon, 24 Jan 2011 13:41:21 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 13:45:54 GMT]]></title><description><![CDATA[<p>danke sehr <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>Aber wäre es zum auslesen nicht einfacher dass ganze so zu amchen dass ich in einem Array zu jedem Level die first,second hätte und dann eben über [Level]-&gt;first bzw. [Level]-&gt; second das ganze aufrufen könnte.</p>
<p>Ansonsten müsste ich ja zwei iteratoren als &quot;finder&quot; nutzen um in meiner map klarzukommen, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011126</guid><dc:creator><![CDATA[Necrofighter]]></dc:creator><pubDate>Mon, 24 Jan 2011 13:45:54 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 14:05:09 GMT]]></title><description><![CDATA[<p>Also wenn ich das jetzt einigermassen richtig verstanden habe, erstellst du für jedes level eine st::map&lt;unsigned int, PtNotEntry&gt; und da du mehrere level im Spiel hast soll eine weitere map all diese maps verwalten. Jede level-map wird also über eine levelId angesprochen?</p>
<p>Dann könntest du doch beispielsweise beim Laden eines levels dir erstmal die entsprechende levelMap abholen:</p>
<pre><code class="language-cpp">std::map&lt;unsigned int, PtNotEntry&gt;&amp; mapOfLevel = levelIdToMapOfLevel[actualLevel];
</code></pre>
<p>und dann mit dieser arbeiten.</p>
<p>Bin nun erstmal weg - kann also nicht weiter am thread teilnehmen falls weitere Fragen bestehen.<br />
Gruss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011144</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Mon, 24 Jan 2011 14:05:09 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 14:08:29 GMT]]></title><description><![CDATA[<p>Ähm ich scheitere bei der &quot;multimap&quot; von dir direkt mal am insert :</p>
<p>Map1.insert(make_pair(cell-&gt;getLevel(),????);</p>
<p>so etwas in der Art müsste es sein, aber bei ??? soll da ein iterator sein der mir auf meinen Key zeigt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011146</guid><dc:creator><![CDATA[Necrofighter]]></dc:creator><pubDate>Mon, 24 Jan 2011 14:08:29 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 15:21:08 GMT]]></title><description><![CDATA[<p>Necrofighter schrieb:</p>
<blockquote>
<p>Ähm ich scheitere bei der &quot;multimap&quot; von dir direkt mal am insert :</p>
<p>Map1.insert(make_pair(cell-&gt;getLevel(),????);</p>
<p>so etwas in der Art müsste es sein, aber bei ??? soll da ein iterator sein der mir auf meinen Key zeigt?</p>
</blockquote>
<p>Meinst Du es so:</p>
<pre><code class="language-cpp">map&lt; unsigned int, map&lt; unsigned int, PtNotEntry &gt; &gt; Map1;
    unsigned int level = 7;
    unsigned knotenIdx = 12;
    PtNotEntry entry;
    Map1[level].insert( make_pair( knotenIdx, entry ) );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2011220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011220</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 24 Jan 2011 15:21:08 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 15:28:47 GMT]]></title><description><![CDATA[<p>Brauche ich dann überhaupt die Multimap?</p>
<p>Es ginge doch auch mit:</p>
<pre><code>map&lt; unsigned int, PtNotEntry &gt; Map1;
</code></pre>
<p>oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011232</guid><dc:creator><![CDATA[Necrofighter]]></dc:creator><pubDate>Mon, 24 Jan 2011 15:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 15:36:36 GMT]]></title><description><![CDATA[<p>Necrofighter schrieb:</p>
<blockquote>
<p>Brauche ich dann überhaupt die Multimap?</p>
<p>Es ginge doch auch mit:</p>
<pre><code>map&lt; unsigned int, PtNotEntry &gt; Map1;
</code></pre>
<p>oder?</p>
</blockquote>
<p>das ist genau dann ok, wenn es zu jedem Level (Member first) genau <strong>einen</strong> Eintrag PtNotEntry gibt (Member second). Ich habe Dich so verstanden, dass Du zu einem Level mehrere Objekte des Typs PtNotEntry in die Map stecken möchtest.</p>
<p>Das ginge auch mit</p>
<pre><code class="language-cpp">std::multimap&lt; unsigned int, PtNotEntry &gt; Map1;
    unsigned int level = 7;
    PtNotEntry entry;
    Map1.insert( make_pair( level, entry ) );
</code></pre>
<p>Der Zugriff beim Lesen geschieht dann z.B. mit der Methode find oder lower- und upper_bound bzw. equal_range.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011239</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 24 Jan 2011 15:36:36 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 15:45:53 GMT]]></title><description><![CDATA[<p>Nein ich habe zu dverschiedenen Levels gleiche firsts quasi, sodass es über multimaps geht.</p>
<p>Wie kann ich dann das ganze wieder auslesen?<br />
Ich habe es nun so versucht, aber der Compieler meckert.</p>
<pre><code>for(int gg = 0; gg &lt;=reader.getMaxLevel(); ++gg)
		{for( map&lt; unsigned long, map&lt; unsigned long, PtEntry &gt;&gt;::iterator aa = Map1[gg].begin(); aa != Map1[gg].end(); ++aa;
		{mapcount4 = ++mapcount4}}
		cout &lt;&lt; &quot;Mapmitarray hat &quot; &lt;&lt; mapcount4 &lt;&lt;&quot; Einträge&quot;&lt;&lt; endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2011242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011242</guid><dc:creator><![CDATA[Necrofighter]]></dc:creator><pubDate>Mon, 24 Jan 2011 15:45:53 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 15:57:16 GMT]]></title><description><![CDATA[<p>so:</p>
<pre><code class="language-cpp">std::map&lt; unsigned long, std::map&lt; unsigned long, PtNotEntry &gt; &gt; Map1;
    for(int gg = 0; gg &lt;=reader.getMaxLevel(); ++gg)
    {
        std::map&lt; unsigned long, PtNotEntry &gt;&amp; map1gg = Map1[gg]; // Referenz, kene Kopie!
        for( std::map&lt; unsigned long, PtNotEntry &gt;::iterator aa = map1gg.begin(); aa != map1gg.end(); ++aa )
        {
            cout &lt;&lt; &quot;Mapmitarray hat &quot; &lt;&lt; &quot; Einträge&quot;&lt;&lt; endl;
        }
    }
</code></pre>
<p>.. lies Dir mal Deine Compiler-Mecker-Meldungen in Ruhe durch und versuche sie zu verstehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011262</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 24 Jan 2011 15:57:16 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 15:59:00 GMT]]></title><description><![CDATA[<p>vielen dank</p>
<p>das</p>
<p>map&lt; unsigned long, map&lt; unsigned long, PtEntry &gt;&gt;::iterator</p>
<p>war einfach purer Schachsinn und ein &quot;;&quot; war zuviel <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>Als Anfänger sitzt man wirklich Stunden an so blödem Mist <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/2011266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011266</guid><dc:creator><![CDATA[Necrofighter]]></dc:creator><pubDate>Mon, 24 Jan 2011 15:59:00 GMT</pubDate></item><item><title><![CDATA[Reply to Map of arrays erstellen on Mon, 24 Jan 2011 19:56:43 GMT]]></title><description><![CDATA[<pre><code>map&lt;unsigned long, PtEntry&gt;::iterator Indexfind1p1 = projectInTriangleMap[cell-&gt;getLevel()].find(cell-&gt;getCellNode(i)-&gt;getIndex());
</code></pre>
<p>damit prüfe ich, ob das was ich suche in der map ist.</p>
<p>Hier die Abfrage:</p>
<pre><code>Indexfind1p1 != projectInTriangleMap[cell-&gt;getLevel()].end()
</code></pre>
<p>da stürzt das programm ab. <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>
<p>Edit : Fehler gefunden, fragt nicht. *rotwerd*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011475</guid><dc:creator><![CDATA[Necrofighter]]></dc:creator><pubDate>Mon, 24 Jan 2011 19:56:43 GMT</pubDate></item></channel></rss>