<?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[Probleme mit Tree, der Pointer auf eine Map enthalten soll]]></title><description><![CDATA[<p>Hallo Forenuser,</p>
<p>ich habe ein kleines Problem mit der tree.hh und einer Map</p>
<p>Ausgehend von einem Anfangszustand habe ich Übergänge zu anderen Zuständen, welche mit einer gewissen Wahrscheinlichkeit verbunden sind.</p>
<p>Für die Speicherung der Zustände mit den zugehörigen Wahrscheinlichkeiten habe ich eine Map ausgesucht, bei der die Zustände als Schlüssel und die Wahrscheinlichkeiten als Wert dazu genutzt werden.</p>
<p>Immer wenn ein Übergang nun geschieht und ein neuer Wert in die Map eingefügt wird, soll in dem Tree - ausgehend vom ursprünglichen Zustand - ein Knoten eingefügt werden, der einen Zeiger auf den entsprechenden Eintrag in der Map enthält. Leider komme ich mit diesem Pointer nicht ganz zurecht. Kann mir jemand helfen, wie der Befehl aussehen müsste, den ich mit der letzten Anweisung bewirken möchte?</p>
<pre><code>std::map&lt;int, std::map&lt;std::vector&lt;double&gt;, double&gt; &gt; TransitionMulti;
tree&lt; std::map&lt;int, std::map&lt;std::vector&lt;double&gt;, double&gt; &gt;* &gt; traceTree;
tree&lt; std::map&lt;int, std::map&lt;std::vector&lt;double&gt;, double&gt; &gt;* &gt;::iterator top = traceTree.begin(), one, two, three, four;

TransitionMulti[0].insert( pair&lt;std::vector&lt;double&gt; ,double&gt;(state, 1) ); //the first state is inserted with the initial value 1
one = traceTree.insert(top, TransitionMulti[0][state]*); //pointer to the first entry of the traceTree
</code></pre>
<p>leider spuckt der mir eine Fehlermeldung für den letzten Befehl aus, kann mir jemand sagen, wie ich</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/283124/probleme-mit-tree-der-pointer-auf-eine-map-enthalten-soll</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 18:25:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/283124.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 05 Mar 2011 15:01:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit Tree, der Pointer auf eine Map enthalten soll on Sat, 05 Mar 2011 15:01:42 GMT]]></title><description><![CDATA[<p>Hallo Forenuser,</p>
<p>ich habe ein kleines Problem mit der tree.hh und einer Map</p>
<p>Ausgehend von einem Anfangszustand habe ich Übergänge zu anderen Zuständen, welche mit einer gewissen Wahrscheinlichkeit verbunden sind.</p>
<p>Für die Speicherung der Zustände mit den zugehörigen Wahrscheinlichkeiten habe ich eine Map ausgesucht, bei der die Zustände als Schlüssel und die Wahrscheinlichkeiten als Wert dazu genutzt werden.</p>
<p>Immer wenn ein Übergang nun geschieht und ein neuer Wert in die Map eingefügt wird, soll in dem Tree - ausgehend vom ursprünglichen Zustand - ein Knoten eingefügt werden, der einen Zeiger auf den entsprechenden Eintrag in der Map enthält. Leider komme ich mit diesem Pointer nicht ganz zurecht. Kann mir jemand helfen, wie der Befehl aussehen müsste, den ich mit der letzten Anweisung bewirken möchte?</p>
<pre><code>std::map&lt;int, std::map&lt;std::vector&lt;double&gt;, double&gt; &gt; TransitionMulti;
tree&lt; std::map&lt;int, std::map&lt;std::vector&lt;double&gt;, double&gt; &gt;* &gt; traceTree;
tree&lt; std::map&lt;int, std::map&lt;std::vector&lt;double&gt;, double&gt; &gt;* &gt;::iterator top = traceTree.begin(), one, two, three, four;

TransitionMulti[0].insert( pair&lt;std::vector&lt;double&gt; ,double&gt;(state, 1) ); //the first state is inserted with the initial value 1
one = traceTree.insert(top, TransitionMulti[0][state]*); //pointer to the first entry of the traceTree
</code></pre>
<p>leider spuckt der mir eine Fehlermeldung für den letzten Befehl aus, kann mir jemand sagen, wie ich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030187</guid><dc:creator><![CDATA[Thanatos511]]></dc:creator><pubDate>Sat, 05 Mar 2011 15:01:42 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Tree, der Pointer auf eine Map enthalten soll on Sat, 05 Mar 2011 15:07:05 GMT]]></title><description><![CDATA[<p>TransitionMulti[0][state] müsste funktionieren. Ansonsten *(TransitionMulti[0][state]) ausprobieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030188</guid><dc:creator><![CDATA[jkljkl]]></dc:creator><pubDate>Sat, 05 Mar 2011 15:07:05 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Tree, der Pointer auf eine Map enthalten soll on Sat, 05 Mar 2011 15:10:53 GMT]]></title><description><![CDATA[<p>beides funktioniert nicht, in dem zweiten Fall gibt es aus:<br />
invalid type argument of unary &quot;*&quot;</p>
<p>in dem TransitionMulti[k][state] Fall heißt es:<br />
no matching function for call &quot;tree...&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030192</guid><dc:creator><![CDATA[Thanatos511]]></dc:creator><pubDate>Sat, 05 Mar 2011 15:10:53 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Tree, der Pointer auf eine Map enthalten soll on Sat, 05 Mar 2011 15:22:34 GMT]]></title><description><![CDATA[<p>Schau dir mal typedef an, um räum deinen Quellcode mal auf...</p>
<p>Und ich glaube, dass die Funktion make_pair und nicht pair heißt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030195</guid><dc:creator><![CDATA[jkljkl]]></dc:creator><pubDate>Sat, 05 Mar 2011 15:22:34 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Tree, der Pointer auf eine Map enthalten soll on Sat, 05 Mar 2011 15:54:51 GMT]]></title><description><![CDATA[<pre><code>typedef std::map&lt;std::vector&lt;double&gt;, double&gt; vectorMap;
    typedef std::map&lt;int, vectorMap &gt; vectorStepMap;

    vectorStepMap TransitionMulti;
    tree&lt; vectorStepMap* &gt; traceTree;
    tree&lt; vectorStepMap* &gt;::iterator top = traceTree.begin(), one, two, three, four;

    TransitionMulti[0].insert( make_pair&lt;std::vector&lt;double&gt; ,double&gt;(state, 1) );
    traceTree.insert(top, vectorStepMap* );
</code></pre>
<p>gut... jetzt ist mein Problem aber noch immer nicht gelöst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030207</guid><dc:creator><![CDATA[Thanatos511]]></dc:creator><pubDate>Sat, 05 Mar 2011 15:54:51 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Tree, der Pointer auf eine Map enthalten soll on Sat, 05 Mar 2011 15:59:33 GMT]]></title><description><![CDATA[<p>Vielleicht traceTree.insert(top, &amp;vectorStepMap );</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030209</guid><dc:creator><![CDATA[ghjghj]]></dc:creator><pubDate>Sat, 05 Mar 2011 15:59:33 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Tree, der Pointer auf eine Map enthalten soll on Sat, 05 Mar 2011 16:34:52 GMT]]></title><description><![CDATA[<p>hilft leider auch nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030216</guid><dc:creator><![CDATA[Thanatos511]]></dc:creator><pubDate>Sat, 05 Mar 2011 16:34:52 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Tree, der Pointer auf eine Map enthalten soll on Sat, 05 Mar 2011 17:53:01 GMT]]></title><description><![CDATA[<p>hilft <code>tree&lt; vectorStepMap &amp; &gt; traceTree;</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030236</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Sat, 05 Mar 2011 17:53:01 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Tree, der Pointer auf eine Map enthalten soll on Sat, 05 Mar 2011 20:39:34 GMT]]></title><description><![CDATA[<p>hilft leider auch nicht...</p>
<p>edit: hab es raus: Ich habe mit dem Pointer auf die komplette Datenstruktur gezeigt, wollte aber nur auf einzelne Paare verweisen...</p>
<p>Code sieht jetzt wie folgt aus und funktioniert auch, Kommentare müssen aber noch abgeändert werden:<br />
[code]<br />
//vectorMap and vectorStepMap are initialized<br />
typedef std::map&lt;std::vector&lt;double&gt;, double&gt; vectorMap;<br />
typedef std::map&lt;int, vectorMap &gt; vectorStepMap;</p>
<p>//Map for storage of the coefficients k_1,...,k_4 and additionally the [0] row contains the beginning state<br />
vectorStepMap TransitionMulti;<br />
TransitionMulti[0].insert( make_pair&lt;std::vector&lt;double&gt; ,double&gt;(state, 1) );</p>
<p>vectorMap::iterator iteratorTransitionMulti = TransitionMulti[0].begin();<br />
double <em>statePointer;<br />
tree&lt; double</em> &gt; traceTree;<br />
tree&lt; double* &gt;::iterator top = traceTree.begin(), one, two, three, four;</p>
<p>//initial probability is added to the traceTree<br />
one = traceTree.insert(top, &amp;iteratorTransitionMulti-&gt;second );<br />
[\code]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030282</guid><dc:creator><![CDATA[Thanatos511]]></dc:creator><pubDate>Sat, 05 Mar 2011 20:39:34 GMT</pubDate></item></channel></rss>