<?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[Matrix Klasse mit Vectoren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte mir eine Matrix-Klasse schreiben und std::vector benutzen, also:</p>
<pre><code class="language-cpp">class Matrix{

public:
//Konstuktor
Matrix(int d1, int d2):dim1(d1),dim2(d2){}
//Dekonstruktor..
//Funktionen..

private:
int dim1,dim2;
vector&lt; vector&lt;int&gt; &gt; mat(dim1);

}
</code></pre>
<p>Leider bekomme ich hierbei einen Fehler für vector&lt; vector&lt;int&gt; &gt; mat(dim1).<br />
(dim1 is not a type) was genau bedeutet das?<br />
Wie kann ich einen zweidimensionalen Vector unter private verwenden?</p>
<p>Vielen vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235471/matrix-klasse-mit-vectoren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 05:01:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235471.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Mar 2009 18:25:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Mon, 02 Mar 2009 18:27:12 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte mir eine Matrix-Klasse schreiben und std::vector benutzen, also:</p>
<pre><code class="language-cpp">class Matrix{

public:
//Konstuktor
Matrix(int d1, int d2):dim1(d1),dim2(d2){}
//Dekonstruktor..
//Funktionen..

private:
int dim1,dim2;
vector&lt; vector&lt;int&gt; &gt; mat(dim1);

}
</code></pre>
<p>Leider bekomme ich hierbei einen Fehler für vector&lt; vector&lt;int&gt; &gt; mat(dim1).<br />
(dim1 is not a type) was genau bedeutet das?<br />
Wie kann ich einen zweidimensionalen Vector unter private verwenden?</p>
<p>Vielen vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673024</guid><dc:creator><![CDATA[laraM]]></dc:creator><pubDate>Mon, 02 Mar 2009 18:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Mon, 02 Mar 2009 18:33:39 GMT]]></title><description><![CDATA[<p>Der Konstruktor von mat benötigt kein int, sondern ein vector&lt;int&gt; zur initialisierung. (oder gar nichts).</p>
<p>Im übrigen finde ich die Deklaration von Variablen mit dem Kommaoperator extrem hässlich. (Mein Geschmack, aber ich habe es auch noch nie wirkliche gesehen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673029</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 02 Mar 2009 18:33:39 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Mon, 02 Mar 2009 18:41:36 GMT]]></title><description><![CDATA[<p>Vielen Dank =).<br />
Danach ist alles immer ganz logisch.</p>
<p>Wie könnte man die Deklaration anders lösen?<br />
Bzw. was genau meinst du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673039</guid><dc:creator><![CDATA[laraM]]></dc:creator><pubDate>Mon, 02 Mar 2009 18:41:36 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Mon, 02 Mar 2009 18:50:08 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">private:
int dim1;
int dim2; //das hier
vector&lt; vector&lt;int&gt; &gt; mat(dim1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1673050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673050</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 02 Mar 2009 18:50:08 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Mon, 02 Mar 2009 19:08:25 GMT]]></title><description><![CDATA[<pre><code>vector&lt; vector&lt;int&gt; &gt; mat(dim1);
</code></pre>
<p>Ist es das dim1 von kurz drueber? Welchen Typ hat dim1 im Konstruktor? Sicher?</p>
<p>Btw. ich implementiere 2D-Arrays meist ueber 1D-Arrays, da ich sonst immer durcheinander komme, was jetzt Zeile und was Spalte war. Ueberlade dementsprechend operator().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673060</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 02 Mar 2009 19:08:25 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Mon, 02 Mar 2009 19:30:49 GMT]]></title><description><![CDATA[<p>Achja.. Das habe ich völlig übersehen. Die Konstruktion kannst du natürlich nicht in der Klassendefinition machen. Dafür wäre die Initialisierungsliste da.</p>
<p>und btw:</p>
<blockquote>
<p>Dekonstruktor</p>
</blockquote>
<p>Das ist der destructor oder auf Deutsch Destruktor.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21632">@knivil</a>:<br />
Inwiefern meinst du das? - Schlussendlich musst du ja auch irendwo jeweils wissen, was Zeile und was Spalte ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673082</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 02 Mar 2009 19:30:49 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Mon, 02 Mar 2009 19:34:23 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">private: 
int dim1,dim2; //unnötig... zu erreichen unter dim1=mat.size() bzw. dim2=mat[x].size()
vector&lt; vector&lt;int&gt; &gt; mat; //nix mit klammern!
</code></pre>
</blockquote>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673086</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 02 Mar 2009 19:34:23 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Mon, 02 Mar 2009 21:46:58 GMT]]></title><description><![CDATA[<p>wäre es eigentlich besser, sowas zu machen:</p>
<p>vector&lt;int*&gt; mat</p>
<p>oder irgendwas ähnliches?</p>
<p>sorry, weiß auch nicht genau was ich will.<br />
Hab nur gehört, dass vector in vector nicht so gut ist.<br />
Die Idee es ins eindimensionale flachzukopieren, hab ich mir schon angeschaut, aber suche noch eine andere lösung.</p>
<p>also vielleicht vektor mit zeigern..?<br />
oder ist das eigentlich auch nicht gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673162</guid><dc:creator><![CDATA[laraM]]></dc:creator><pubDate>Mon, 02 Mar 2009 21:46:58 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Mon, 02 Mar 2009 22:02:53 GMT]]></title><description><![CDATA[<p>Ist eine andere Möglichkeit, aber imo sinnfrei, wenn du dann die ints selbst dynamisch verwaltest.. Dann kannst du das gleich für das ganze so machen..</p>
<p>Was spricht den gegen vector von vector? - Ansonsten kannst du es ja so machen:</p>
<pre><code class="language-cpp">std::vector v ( height * width );
</code></pre>
<p>Und dann halt beim Zugriff das selbst berechnen welches Element du schlussendlich willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673168</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 02 Mar 2009 22:02:53 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Tue, 03 Mar 2009 10:33:07 GMT]]></title><description><![CDATA[<p>Ein Hinweis nebenbei: der Container std::valarray könnte sich für numerische Operationen besser eignen als std::vector.</p>
<p>Gruß Kimmi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673340</guid><dc:creator><![CDATA[kimmi]]></dc:creator><pubDate>Tue, 03 Mar 2009 10:33:07 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Tue, 03 Mar 2009 12:47:06 GMT]]></title><description><![CDATA[<p>Habe ein ähnliches Problem.<br />
Würde sich valarray auch bei großen Datentypen, wie z.B. aus gmp, auch besser eignen?<br />
Was hätte eine bessere Preformance?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673414</guid><dc:creator><![CDATA[blumfeld]]></dc:creator><pubDate>Tue, 03 Mar 2009 12:47:06 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Tue, 03 Mar 2009 12:48:55 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Matrix(int d1, int d2) : mat(d1, std::vector&lt;int&gt;(d2)){}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1673415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673415</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 03 Mar 2009 12:48:55 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Tue, 03 Mar 2009 12:58:37 GMT]]></title><description><![CDATA[<p>Welche Vorteile hat in diesem Fall ( Matrizen sind meistens von konstanter Länge ) eigentlich die Verwendung von std::vector?</p>
<p>früher gabs da mal so dinge wie <strong>new</strong> und <strong>delete</strong>...</p>
<p>*sich auf den Kritik-hagel vorbereitet*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673420</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Tue, 03 Mar 2009 12:58:37 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Tue, 03 Mar 2009 13:20:47 GMT]]></title><description><![CDATA[<p>leider funktioniert mit gmp (mpq_t) das nicht:</p>
<pre><code class="language-cpp">Matrix(int d1, int d2) : mat(d1, std::vector&lt;mpq_t&gt;(d2)){}
</code></pre>
<p>wahrscheinlich muss ich sowas wie laraM vorgeschlagen hat machen:</p>
<pre><code class="language-cpp">vector&lt;mpq_t*&gt; mat
</code></pre>
<p>machen.</p>
<p>und dann auch über new und delete gehen oder?<br />
Hat einer sowas schonmal gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673429</guid><dc:creator><![CDATA[blumfeld]]></dc:creator><pubDate>Tue, 03 Mar 2009 13:20:47 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Tue, 03 Mar 2009 13:24:43 GMT]]></title><description><![CDATA[<p>Was funktioniert nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673431</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 03 Mar 2009 13:24:43 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Tue, 03 Mar 2009 13:34:12 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Matrix(int d1, int d2) : mat(d1, std::vector&lt;mpq_t&gt;(d2)){}
</code></pre>
<pre><code>‘std::vector&lt;_Tp, _Alloc&gt;::vector(size_t, const _Tp&amp;, const _Alloc&amp;) [with _Tp = __mpq_struct [1], _Alloc = std::allocator&lt;__mpq_struct [1]&gt;]’:

 error: conversion from ‘int’ to non-scalar type ‘__mpq_struct [1]’ requested
/usr/include/c++/4.3/bits/stl_construct.h: In function ‘void std::_Destroy(_Tp*) [with _Tp = __mpq_struct [1&rsqb;&rsqb;’:
/usr/include/c++/4.3/bits/stl_construct.h:103:   instantiated from ‘void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = __mpq_struct (*)[1&rsqb;&rsqb;’
/usr/include/c++/4.3/bits/stl_construct.h:128:   instantiated from ‘void std::_Destroy(_ForwardIterator, _ForwardIterator, std::allocator&lt;_T2&gt;&amp;) [with _ForwardIterator = __mpq_struct (*)[1], _Tp = __mpq_struct [1&rsqb;&rsqb;’
/usr/include/c++/4.3/bits/stl_vector.h:300:   instantiated from ‘std::vector&lt;_Tp, _Alloc&gt;::~vector() [with _Tp = __mpq_struct [1], _Alloc = std::allocator&lt;__mpq_struct [1]&gt;]’
</code></pre>
<p>ich denke das hat was damit zu tun, das ich den ersten vector erst mit mpq_init() aufrufen müßte, bevor ich zweite Dimension einfügen kann, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673442</guid><dc:creator><![CDATA[blumfeld]]></dc:creator><pubDate>Tue, 03 Mar 2009 13:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Tue, 03 Mar 2009 13:37:29 GMT]]></title><description><![CDATA[<p>Kann es sein dass die Membervariable &quot;mat&quot; noch vom Typ vector&lt;vector&lt;int&gt; &gt; ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673446</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 03 Mar 2009 13:37:29 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Tue, 03 Mar 2009 13:42:46 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class Matrix {
public:
	Matrix();
	Matrix(int rows, int cols): mat(rows, vector&lt;mpq_t&gt;(cols)){};

private:
	vector&lt; vector&lt;mpq_t&gt; &gt; mat;

};
</code></pre>
<p>hmm</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673449</guid><dc:creator><![CDATA[blumfeld]]></dc:creator><pubDate>Tue, 03 Mar 2009 13:42:46 GMT</pubDate></item><item><title><![CDATA[Reply to Matrix Klasse mit Vectoren on Tue, 03 Mar 2009 14:52:56 GMT]]></title><description><![CDATA[<p>Es klappt auch schon eindimensional nicht:</p>
<pre><code class="language-cpp">class Matrix {
public:
	Matrix();
	Matrix(int rows): mat(rows){};
private:
	vector&lt;mpq_t &gt; mat;

};
</code></pre>
<p>selbe Fehlermeldung:</p>
<pre><code>../Matrix.h: In constructor ‘std::vector&lt;_Tp, _Alloc&gt;::vector(size_t, const _Tp&amp;, const _Alloc&amp;) [with _Tp = __mpq_struct [1], _Alloc = std::allocator&lt;__mpq_struct [1]&gt;]’:
../Matrix.h:20: error: conversion from ‘int’ to non-scalar type ‘__mpq_struct [1]’ requested
/usr/include/c++/4.3/bits/stl_construct.h: In function ‘void std::_Destroy(_Tp*) [with _Tp = __mpq_struct [1&rsqb;&rsqb;’:
/usr/include/c++/4.3/bits/stl_construct.h:103:   instantiated from ‘void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = __mpq_struct (*)[1&rsqb;&rsqb;’
/usr/include/c++/4.3/bits/stl_construct.h:128:   instantiated from ‘void std::_Destroy(_ForwardIterator, _ForwardIterator, std::allocator&lt;_T2&gt;&amp;) [with _ForwardIterator = __mpq_struct (*)[1], _Tp = __mpq_struct [1&rsqb;&rsqb;’
/usr/include/c++/4.3/bits/stl_vector.h:300:   instantiated from ‘std::vector&lt;_Tp, _Alloc&gt;::~vector() [with _Tp = __mpq_struct [1], _Alloc = std::allocator&lt;__mpq_struct [1]&gt;]’
../Matrix.h:20:   instantiated from here
/usr/include/c++/4.3/bits/stl_construct.h:88: error: request for member ‘~__mpq_struct [1]’ in ‘* __pointer’, which is of non-class type ‘__mpq_struct [1]’
/usr/include/c++/4.3/bits/stl_algobase.h: In function ‘typename __gnu_cxx::__enable_if&lt;(! std::__is_scalar::__value), _OutputIterator&gt;::__type std::__fill_n_a(_OutputIterator, _Size, const _Tp&amp;) [with _OutputIterator = __mpq_struct (*)[1], _Size = unsigned int, _Tp = __mpq_struct [1&rsqb;&rsqb;’:
/usr/include/c++/4.3/bits/stl_algobase.h:784:   instantiated from ‘_OI std::fill_n(_OI, _Size, const _Tp&amp;) [with _OI = __mpq_struct (*)[1], _Size = unsigned int, _Tp = __mpq_struct [1&rsqb;&rsqb;’
/usr/include/c++/4.3/bits/stl_uninitialized.h:209:   instantiated from ‘static void std::__uninitialized_fill_n&lt;true&gt;::uninitialized_fill_n(_ForwardIterator, _Size, const _Tp&amp;) [with _ForwardIterator = __mpq_struct (*)[1], _Size = unsigned int, _Tp = __mpq_struct [1&rsqb;&rsqb;’
/usr/include/c++/4.3/bits/stl_uninitialized.h:228:   instantiated from ‘void std::uninitialized_fill_n(_ForwardIterator, _Size, const _Tp&amp;) [with _ForwardIterator = __mpq_struct (*)[1], _Size = unsigned int, _Tp = __mpq_struct [1&rsqb;&rsqb;’
/usr/include/c++/4.3/bits/stl_uninitialized.h:323:   instantiated from ‘void std::__uninitialized_fill_n_a(_ForwardIterator, _Size, const _Tp&amp;, std::allocator&lt;_Tp2&gt;&amp;) [with _ForwardIterator = __mpq_struct (*)[1], _Size = unsigned int, _Tp = __mpq_struct [1], _Tp2 = __mpq_struct [1&rsqb;&rsqb;’
/usr/include/c++/4.3/bits/stl_vector.h:976:   instantiated from ‘void std::vector&lt;_Tp, _Alloc&gt;::_M_fill_initialize(size_t, const _Tp&amp;) [with _Tp = __mpq_struct [1], _Alloc = std::allocator&lt;__mpq_struct [1]&gt;]’
/usr/include/c++/4.3/bits/stl_vector.h:236:   instantiated from ‘std::vector&lt;_Tp, _Alloc&gt;::vector(size_t, const _Tp&amp;, const _Alloc&amp;) [with _Tp = __mpq_struct [1], _Alloc = std::allocator&lt;__mpq_struct [1]&gt;]’
../Matrix.h:20:   instantiated from here
/usr/include/c++/4.3/bits/stl_algobase.h:741: error: invalid array assignment
</code></pre>
<p>schade.. kennt einer einen ausweg</p>
<p>(sorry LaraM, hätte einen eigenen Beitrag aufmachen sollen <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: Ich habe einen eigenen Beitrag aufgemacht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673471</guid><dc:creator><![CDATA[blumfeld]]></dc:creator><pubDate>Tue, 03 Mar 2009 14:52:56 GMT</pubDate></item></channel></rss>