<?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[Adressierung 2.5D zu 1D]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>angenommen ich habe so eine Datenstruktur:</p>
<pre><code>matrix&lt;std::vector&lt;double&gt;&gt; mat;
</code></pre>
<p>also eine Matrix aus (unterschiedlich!) langen Vektoren. Ich würde jetzt gerne effizient aus dieser Struktur einen Wert holen können und zwar ohne jedes mal über diese drüber iterieren zu müssen. Also etwa so:</p>
<pre><code>mat.linear_index(10); // soll das gleiche sein wie ...
mat[2][1][3] // ... vorrausgesetzt das mat[2][1][3] der 10te Eintrag in mat ist
</code></pre>
<p>Wenn ich mat als dreistufigen Tensor implementieren würde wäre das ja einfach, weil ich dann die Indizes einfach umrechnen könnte... Allerdings wäre das ja ziemliche Platzverschwendung, denn die allermeisten der Vektoren haben einfach Länge 1.</p>
<p>Wie könnte man das am besten lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/326443/adressierung-2-5d-zu-1d</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 23:47:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326443.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Jun 2014 12:56:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Adressierung 2.5D zu 1D on Wed, 18 Jun 2014 12:56:57 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>angenommen ich habe so eine Datenstruktur:</p>
<pre><code>matrix&lt;std::vector&lt;double&gt;&gt; mat;
</code></pre>
<p>also eine Matrix aus (unterschiedlich!) langen Vektoren. Ich würde jetzt gerne effizient aus dieser Struktur einen Wert holen können und zwar ohne jedes mal über diese drüber iterieren zu müssen. Also etwa so:</p>
<pre><code>mat.linear_index(10); // soll das gleiche sein wie ...
mat[2][1][3] // ... vorrausgesetzt das mat[2][1][3] der 10te Eintrag in mat ist
</code></pre>
<p>Wenn ich mat als dreistufigen Tensor implementieren würde wäre das ja einfach, weil ich dann die Indizes einfach umrechnen könnte... Allerdings wäre das ja ziemliche Platzverschwendung, denn die allermeisten der Vektoren haben einfach Länge 1.</p>
<p>Wie könnte man das am besten lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2404426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2404426</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Wed, 18 Jun 2014 12:56:57 GMT</pubDate></item><item><title><![CDATA[Reply to Adressierung 2.5D zu 1D on Wed, 18 Jun 2014 13:22:55 GMT]]></title><description><![CDATA[<p>Wenn du dir die Länge der einzelnen Vektoren in einem zusätzlichen Array/Vektor nachhälst kannst du vielleicht mit Prefix- oder Ranking Operationen (hießen die so?!) was rumtrixen, aber da müsst ich selbst auch mal etwas drüber nachdenken und was nachschauen.</p>
<p>Aber außer über die Matrix zu iterieren und die Länge nachzurechnen fällt mir grad nicht ein. Holzhammer-Methode aber klappt garantiert <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/2404434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2404434</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 18 Jun 2014 13:22:55 GMT</pubDate></item></channel></rss>