<?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[vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe eine Funktion die einen float * erwartet. Ich möchte ihr meinen vector&lt;vector&lt;float&gt;&gt; übergeben. Habe &amp;meinVector[0][0] probiert, klappt nicht. Ist dies überhaupt möglich? Besten Dank im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307947/vector-lt-vector-lt-float-gt-gt-als-float-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 08:08:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307947.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Sep 2012 10:32:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 10:32:41 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe eine Funktion die einen float * erwartet. Ich möchte ihr meinen vector&lt;vector&lt;float&gt;&gt; übergeben. Habe &amp;meinVector[0][0] probiert, klappt nicht. Ist dies überhaupt möglich? Besten Dank im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249900</guid><dc:creator><![CDATA[blublub]]></dc:creator><pubDate>Mon, 10 Sep 2012 10:32:41 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 10:35:48 GMT]]></title><description><![CDATA[<p>blublub schrieb:</p>
<blockquote>
<p>Ist dies überhaupt möglich?</p>
</blockquote>
<p>Nein, denn wenn deine Funktion einen float* erwartet, dann erwartet sie wohl einen zusammenhängenden Speicherbereicht. Ein <code>vector&lt;vector&lt;T&gt;&gt;</code> ist nicht zusammenhängend...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249901</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 10 Sep 2012 10:35:48 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 10:40:02 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>blublub schrieb:</p>
<blockquote>
<p>Ist dies überhaupt möglich?</p>
</blockquote>
<p>Nein, denn wenn deine Funktion einen float* erwartet, dann erwartet sie wohl einen zusammenhängenden Speicherbereicht. Ein <code>vector&lt;vector&lt;T&gt;&gt;</code> ist nicht zusammenhängend...</p>
</blockquote>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249902</guid><dc:creator><![CDATA[blublub]]></dc:creator><pubDate>Mon, 10 Sep 2012 10:40:02 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 10:41:39 GMT]]></title><description><![CDATA[<p>sicher, dass du mit den Dimensionen nicht durcheinandergekommen bist? Ein float* entspricht einem vector&lt;float&gt;, also eindimensional. Ein vector&lt;vector&lt;float&gt;&gt; dagegen ist zweidimensional, also float**</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249903</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Mon, 10 Sep 2012 10:41:39 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 10:43:40 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>sicher, dass du mit den Dimensionen nicht durcheinandergekommen bist? Ein float* entspricht einem vector&lt;float&gt;, also eindimensional. Ein vector&lt;vector&lt;float&gt;&gt; dagegen ist zweidimensional, also float**</p>
</blockquote>
<p>Der float * sollte folgende Struktur haben:</p>
<pre><code>arr[0] = x1
arr[1] = x2
arr[2] = x3
arr[3] = y1
...
</code></pre>
<p>Ich verwende dafür einen 2d vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249904</guid><dc:creator><![CDATA[blublub]]></dc:creator><pubDate>Mon, 10 Sep 2012 10:43:40 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 10:44:36 GMT]]></title><description><![CDATA[<p>Korrektur:</p>
<pre><code>arr[3] = [b]y2[/b]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2249905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249905</guid><dc:creator><![CDATA[blublub]]></dc:creator><pubDate>Mon, 10 Sep 2012 10:44:36 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 10:46:25 GMT]]></title><description><![CDATA[<p>blublub schrieb:</p>
<blockquote>
<p>Ich verwende dafür einen 2d vector.</p>
</blockquote>
<p>Du verwendest einen vector aus vectoren, das ist, wenn auch zweidimensional, etwas fundamental anderes als ein zweidimensionales Array. <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>
<p>Was genau willst du denn machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249906</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 10 Sep 2012 10:46:25 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 10:50:23 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>blublub schrieb:</p>
<blockquote>
<p>Ist dies überhaupt möglich?</p>
</blockquote>
<p>Nein, denn wenn deine Funktion einen float* erwartet, dann erwartet sie wohl einen zusammenhängenden Speicherbereicht. Ein <code>vector&lt;vector&lt;T&gt;&gt;</code> ist nicht zusammenhängend...</p>
</blockquote>
<p>`</p>
<p>vector&lt;T&gt;` ist aber linear zusammenhängend. (23.2.3 Sequence containers)</p>
<blockquote>
<p>A sequence container organizes a finite set of objects, all of the same type, into a strictly linear arrangement.</p>
</blockquote>
<p>Demnach ist</p>
<pre><code class="language-cpp">void fkt(float* p)
{
	for(unsigned i=0; i&lt;10; ++i)
		cout &lt;&lt; p[i];
	cout &lt;&lt; endl;
}

int main()
{
	vector&lt; vector&lt;float&gt; &gt; v;

	vector&lt;float&gt; f1(10,1);
	vector&lt;float&gt; f2(10,2);

	v.push_back(f1);
	v.push_back(f2);

	fkt( &amp;v[0][0] );
	fkt( &amp;v[1][0] );

}
</code></pre>
<p>absolut in Ordnung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249908</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 10 Sep 2012 10:50:23 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 10:50:31 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>blublub schrieb:</p>
<blockquote>
<p>Ich verwende dafür einen 2d vector.</p>
</blockquote>
<p>Du verwendest einen vector aus vectoren, das ist, wenn auch zweidimensional, etwas fundamental anderes als ein zweidimensionales Array. <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>
<p>Was genau willst du denn machen?</p>
</blockquote>
<p>Ich nutze eine Computer Vision Bibliothek um mir Eigenvektoren zu berechnen und diese erwartet float *. Die Größe des <code>vector</code> 's steht auch nicht von vornherein fest, so dass ich nicht auf <code>array</code> umsteigen möchte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249909</guid><dc:creator><![CDATA[blublub2]]></dc:creator><pubDate>Mon, 10 Sep 2012 10:50:31 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 11:06:19 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p><code>vector&lt;T&gt;</code> ist aber linear zusammenhängend. (23.2.3 Sequence containers)</p>
</blockquote>
<p>Natürlich, <code>vector&lt;T&gt;</code> enthält einen Zeiger auf einen zusammenhängenden Speicherbereich. Ergo ist <code>vector&lt;vector&lt;T&gt;&gt;</code> ein Objekt, welches einen Zeiger auf einen zusammenhängenden Speicherbereich enthält, welcher Objekte enthält, die Zeiger auf zusammenhängende Speicherbereiche enthalten, welche Objekte vom Typ T enthalten.<br />
Ja, wenn du nur einen Zeiger auf einen dieser Speicherbereiche haben willst, dann ist <code>&amp;vector[i][0]</code> bzw. einfach <code>vector[i].data()</code> ok. Aber einen Zeiger auf das ganze 2D Gebilde linearisiert bekommst du nicht hin. Und da er von 2d geredet hat, ging ich natürlich davon aus, dass sein <code>vector&lt;vector&lt;T&gt;&gt;</code> eine Matrix darstellen soll und nicht einfach nur ein Array aus Vektoren...</p>
<p>blublub2 schrieb:</p>
<blockquote>
<p>Ich nutze eine Computer Vision Bibliothek um mir Eigenvektoren zu berechnen und diese erwartet float *. Die Größe des <code>vector</code> 's steht auch nicht von vornherein fest, so dass ich nicht auf <code>array</code> umsteigen möchte.</p>
</blockquote>
<p>Und auf was soll dieser <code>float*</code> genau zeigen? Eine Matrix? Wenn ja: In welchem Speicherlayout?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249912</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 10 Sep 2012 11:06:19 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 11:06:29 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>Und auf was soll dieser <code>float*</code> genau zeigen? Eine Matrix? Wenn ja: In welchem Speicherlayout?</p>
</blockquote>
<p>Er zeigt auf eine Koordinatenliste</p>
<pre><code>xyz[0] = x1;
xyz[1] = y1;
xyz[2] = z1;

xyz[3] = x2;
xyz[4] = y2;
...
</code></pre>
<p>im moment verwende ich:</p>
<pre><code class="language-cpp">while( irgendwas )
  pointCloud.push_back( x );
  pointCloud.push_back( y );
  pointCloud.push_back( z );
end
</code></pre>
<p>Halte es aber nicht besonders bequem zu debuggen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249915</guid><dc:creator><![CDATA[blublub]]></dc:creator><pubDate>Mon, 10 Sep 2012 11:06:29 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 11:08:30 GMT]]></title><description><![CDATA[<p>Wieso muss der vector dann &quot;2d&quot; sein, wenn es einfach nur eine Liste aus Koordinaten ist? Wenn du Eigenwerte berechnen willst, brauchst du doch eine Matrix als Input!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249917</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 10 Sep 2012 11:08:30 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 11:14:21 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>Wieso muss der vector dann &quot;2d&quot; sein, wenn es einfach nur eine Liste aus Koordinaten ist? Wenn du Eigenwerte berechnen willst, brauchst du doch eine Matrix als Input!?</p>
</blockquote>
<p>War mir bequemer im debug modus. Zusammenhängende listen lesen sich nicht so einfach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249919</guid><dc:creator><![CDATA[blublub]]></dc:creator><pubDate>Mon, 10 Sep 2012 11:14:21 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 11:23:38 GMT]]></title><description><![CDATA[<p>Naja, verwend ein entsprechendes 2D Array oder einen normalen <code>vector&lt;float&gt;</code> ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249925</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 10 Sep 2012 11:23:38 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 13:19:36 GMT]]></title><description><![CDATA[<p>blublub schrieb:</p>
<blockquote>
<p>War mir bequemer im debug modus. Zusammenhängende listen lesen sich nicht so einfach.</p>
</blockquote>
<p>Software wird normalerweise nicht fuer Bequemlichkeit im Debugmodus geschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249970</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 10 Sep 2012 13:19:36 GMT</pubDate></item><item><title><![CDATA[Reply to vector&amp;lt;vector&amp;lt;float&amp;gt;&amp;gt; als float * übergeben on Mon, 10 Sep 2012 13:26:26 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>blublub schrieb:</p>
<blockquote>
<p>War mir bequemer im debug modus. Zusammenhängende listen lesen sich nicht so einfach.</p>
</blockquote>
<p>Software wird normalerweise nicht fuer Bequemlichkeit im Debugmodus geschrieben.</p>
</blockquote>
<p>Das nicht. Allerdings sollte man diesen Aspekt auch nicht völlig vernachlässigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249971</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Mon, 10 Sep 2012 13:26:26 GMT</pubDate></item></channel></rss>