<?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[Mapping eines (Integer-)Tupels auf Vektor]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>ich benötige ein Konstrukt, in welchem ein Tupel von unsigned ints auf einen weiteren Datentypen (vnl_vector) gemappt wird.</p>
<p>Ein Beispiel eines solchen Mappings wäre folgendes:</p>
<blockquote>
<p>&lt;1,2&gt; --&gt; vector(4,5,6)<br />
&lt;2,3&gt; --&gt; vector(9,3,4)<br />
&lt;3,4&gt; --&gt; vector(3,4,4)<br />
&lt;10,20&gt; --&gt; vector(1,1,1)</p>
</blockquote>
<p>Ich hatte mir jetzt folgendes vorgestellt, um dies zu realisieren:</p>
<pre><code class="language-cpp">/// \brief A tuple of unsigned ints.
typedef std::tr1::tuple&lt;unsigned int,unsigned int&gt; t_uint_tuple;

/// \brief The set itself.
std::map&lt;t_uint_tuple,vnl_vector&lt;double&gt; &gt; m_set;
</code></pre>
<p>Hierzu habe ich zwei Fragen:</p>
<p>1. In den Standardbeispielen, die ich gelesen habe, wird als Key ein Standardtyp (int, char, ...) verwendet. Meine Vermutung hier ist, dass das daran liegt, dass ein Vergleich (==, !=, ...) zwischen diesen Typen leicht möglich ist. Muss ich, wenn ich ein std::tr1::tuple verwendet, neue Vergleichsfunktionen schreiben und wenn ja, wie mache ich das?</p>
<p>2. Hat jemand eine Idee für eine elegantere Möglichkeit, mein Problem zu lösen?</p>
<p>Ich hoffe, ich habe mein Problem deutlich gemacht, wenn nicht, einfach fragen und ich versuche es noch klarer zu machen. <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>Vielen Dank schonmal für die Hilfe,<br />
mbu</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/227226/mapping-eines-integer-tupels-auf-vektor</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 04:48:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/227226.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Nov 2008 17:04:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mapping eines (Integer-)Tupels auf Vektor on Wed, 12 Nov 2008 17:04:09 GMT]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>ich benötige ein Konstrukt, in welchem ein Tupel von unsigned ints auf einen weiteren Datentypen (vnl_vector) gemappt wird.</p>
<p>Ein Beispiel eines solchen Mappings wäre folgendes:</p>
<blockquote>
<p>&lt;1,2&gt; --&gt; vector(4,5,6)<br />
&lt;2,3&gt; --&gt; vector(9,3,4)<br />
&lt;3,4&gt; --&gt; vector(3,4,4)<br />
&lt;10,20&gt; --&gt; vector(1,1,1)</p>
</blockquote>
<p>Ich hatte mir jetzt folgendes vorgestellt, um dies zu realisieren:</p>
<pre><code class="language-cpp">/// \brief A tuple of unsigned ints.
typedef std::tr1::tuple&lt;unsigned int,unsigned int&gt; t_uint_tuple;

/// \brief The set itself.
std::map&lt;t_uint_tuple,vnl_vector&lt;double&gt; &gt; m_set;
</code></pre>
<p>Hierzu habe ich zwei Fragen:</p>
<p>1. In den Standardbeispielen, die ich gelesen habe, wird als Key ein Standardtyp (int, char, ...) verwendet. Meine Vermutung hier ist, dass das daran liegt, dass ein Vergleich (==, !=, ...) zwischen diesen Typen leicht möglich ist. Muss ich, wenn ich ein std::tr1::tuple verwendet, neue Vergleichsfunktionen schreiben und wenn ja, wie mache ich das?</p>
<p>2. Hat jemand eine Idee für eine elegantere Möglichkeit, mein Problem zu lösen?</p>
<p>Ich hoffe, ich habe mein Problem deutlich gemacht, wenn nicht, einfach fragen und ich versuche es noch klarer zu machen. <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>Vielen Dank schonmal für die Hilfe,<br />
mbu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1613663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613663</guid><dc:creator><![CDATA[mbu]]></dc:creator><pubDate>Wed, 12 Nov 2008 17:04:09 GMT</pubDate></item><item><title><![CDATA[Reply to Mapping eines (Integer-)Tupels auf Vektor on Wed, 12 Nov 2008 17:51:48 GMT]]></title><description><![CDATA[<p>Antworte ich nochmal auf meinen eigenen Post. Nach etwas Recherche, habe ich herausgefunden, dass es ja sowas wie std::pair gibt. Damit scheint es zu funktionieren, ohne irgendwelche Vergleichsoperatoren zu definieren.</p>
<pre><code class="language-cpp">std::map&lt;std::pair&lt;unsigned int,unsigned int&gt;,vnl_vector&lt;double&gt; &gt; m_set;

/* ... */

// Hinzufügen zum Beispiel über:
vnl_vector v1(8,0.0);
m_set.insert( std::make_pair( std::make_pair(1,2), v1 ) );
</code></pre>
<p>Wenn noch bessere Vorschläge existieren, bin ich aber nach wie vor offenen Ohres.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1613681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613681</guid><dc:creator><![CDATA[mbu]]></dc:creator><pubDate>Wed, 12 Nov 2008 17:51:48 GMT</pubDate></item><item><title><![CDATA[Reply to Mapping eines (Integer-)Tupels auf Vektor on Wed, 12 Nov 2008 17:52:56 GMT]]></title><description><![CDATA[<p>die Vergleichsoperatoren für tuple sind afaik schon von Haus aus überladen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1613682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613682</guid><dc:creator><![CDATA[Paul Manns]]></dc:creator><pubDate>Wed, 12 Nov 2008 17:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to Mapping eines (Integer-)Tupels auf Vektor on Wed, 12 Nov 2008 17:59:21 GMT]]></title><description><![CDATA[<p>die Vergleichsoperatoren für tuple sind afaik schon von Haus aus überladen, wenn du was eigenes brauchst, dann kannst du dem deine eigene Comparer als Templateparameter übergeen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1613683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613683</guid><dc:creator><![CDATA[Paul Manns]]></dc:creator><pubDate>Wed, 12 Nov 2008 17:59:21 GMT</pubDate></item><item><title><![CDATA[Reply to Mapping eines (Integer-)Tupels auf Vektor on Thu, 13 Nov 2008 09:39:41 GMT]]></title><description><![CDATA[<p>Laut dem Draft ( N2798 ). Sind die Operatoren (wäre auch sehr merkwürdig wenn nicht) natürlich überladen. Das sollte nicht das Problem sein. (Auch wenn du besser die Implementierung des Compilers anschauen solltest.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1613923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613923</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 13 Nov 2008 09:39:41 GMT</pubDate></item></channel></rss>