<?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[Typ von vector ändern]]></title><description><![CDATA[<p>Hallo,<br />
ich hab da mal ne Frage zu den vectors...</p>
<p>Ich hab mir so nen Vector definiert:</p>
<pre><code class="language-cpp">std::vector&lt; T1 &gt; Element_List;
</code></pre>
<p>Für diesen hab ich einige Methoden geschrieben...</p>
<p>Jetzt möchte ich den Typ des vectors ändern...</p>
<p>Beispielsweise soll er dann so aussehen:</p>
<pre><code class="language-cpp">std::vector&lt; T2 &gt; Element_List;
</code></pre>
<p>Wichtig ist, das der Name des Vectors der gleiche ist. Also Element_List...<br />
Der Vektor Element_List mit den Datentypen T1 benötige ich nicht mehr, er kann also gelöscht werden da ich den Inhalt schon wo anders zwischengespeichert habe...</p>
<p>Meine Frage ist jetzt ob das überhaupt geht?</p>
<p>mfg Ishi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/298257/typ-von-vector-ändern</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 21:30:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/298257.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Jan 2012 15:51:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Typ von vector ändern on Mon, 16 Jan 2012 15:51:40 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich hab da mal ne Frage zu den vectors...</p>
<p>Ich hab mir so nen Vector definiert:</p>
<pre><code class="language-cpp">std::vector&lt; T1 &gt; Element_List;
</code></pre>
<p>Für diesen hab ich einige Methoden geschrieben...</p>
<p>Jetzt möchte ich den Typ des vectors ändern...</p>
<p>Beispielsweise soll er dann so aussehen:</p>
<pre><code class="language-cpp">std::vector&lt; T2 &gt; Element_List;
</code></pre>
<p>Wichtig ist, das der Name des Vectors der gleiche ist. Also Element_List...<br />
Der Vektor Element_List mit den Datentypen T1 benötige ich nicht mehr, er kann also gelöscht werden da ich den Inhalt schon wo anders zwischengespeichert habe...</p>
<p>Meine Frage ist jetzt ob das überhaupt geht?</p>
<p>mfg Ishi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168817</guid><dc:creator><![CDATA[Ishi]]></dc:creator><pubDate>Mon, 16 Jan 2012 15:51:40 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Mon, 16 Jan 2012 15:54:20 GMT]]></title><description><![CDATA[<p>Wozu brauchst du das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168818</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Mon, 16 Jan 2012 15:54:20 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Mon, 16 Jan 2012 15:55:09 GMT]]></title><description><![CDATA[<p>Das hoerst sich fuer mich sehr merkwuerdig an. Erklaere doch mal, was du machen moechtest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168819</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Mon, 16 Jan 2012 15:55:09 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Mon, 16 Jan 2012 16:14:31 GMT]]></title><description><![CDATA[<p>Also,<br />
insgesamt geht es hier um FEM-Berechnungen. T1, T2 usw. sind Elementtypen aus der Mechanik die unterschiedliche Eigenschaften haben.</p>
<p>Ursprünglich hab ich also meine Berechnungen alle mit dem Datentyp T1 geschrieben...</p>
<p>vector::&lt;T1&gt;Element_List wird ganz am Anfang meines Programms initialisiert...Das muss auch so bleiben da ich aus einem anderen Programm so die Daten in mein Programm reinlade...<br />
Bei meinen weiteren Berechnungen erstell ich mir ein T2 durch irgendwelche Kombinationen aus T1.<br />
Dann hab ich ne Element_List_2 vom Typ T2...</p>
<p>Um das ganze zu visualliesieren gibt es eine output-methode der ich allerdings einen vector vom Datentyp T1 übergeben muss.</p>
<p>Ich hab jetzt aber einen vector vom Datentyp T2.... Diesen vector möchte ich in einen vector umschreiben der Element_List heißt was ich ja schon am anfang definiert habe.</p>
<p>Ich hab eine Methode die mir den T2 vector in einen T1 vector umkopiert allerdings kann ich von dem T1 vector den Datentyp<br />
nicht ändern.<br />
Wäre schön wenn das möglich wäre ohne viel Aufwand....<br />
Ich hab mir halt überlegt ob man einfach den vector Element_List vom Datentyp T1 komplett löschen kann und dann einfach einen<br />
neuen erzeugen kann der halt genauso heißt und einen anderen Datentyp hat....</p>
<p>Also wenns da ne einfache Möglichkeit gibt wärs cool wenn ihr mir helfen könntet.<br />
Ansonsten muss ich mir was anderes einfallen lassen....</p>
<p>danke soweit IShi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168826</guid><dc:creator><![CDATA[Ishi]]></dc:creator><pubDate>Mon, 16 Jan 2012 16:14:31 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Mon, 16 Jan 2012 16:20:14 GMT]]></title><description><![CDATA[<p>Ich versteh noch nicht ganz. Klar geht sowas:</p>
<pre><code class="language-cpp">struct A{};
struct B : A{};
struct C : A{};

#include &lt;vector&gt;

int main()
{
    std::vector&lt;A*&gt; vec;

    B b;
    C c;

    vec.push_back(&amp;b);
    vec.push_back(&amp;c);
}
</code></pre>
<p>~~Ich bin mir aber ziemlich sicher, dass du das nicht brauchst. (Jedenfalls nicht um dein &quot;Problem&quot; zu lösen).<br />
~~</p>
<p>Versuchs mal in die Richtung.</p>
<p>Edit:<br />
Zeig erstmal deinen (gekürzten) Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168828</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Jan 2012 16:20:14 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Mon, 16 Jan 2012 16:20:29 GMT]]></title><description><![CDATA[<p>Ja ne,<br />
das ists nicht so richtig...<br />
Danke dir aber trotzdem und laßt es gut sein... mir kommt das ganze auch merkwürdig vor....<br />
Während ich das hier geschrieben hab ist mir aber ne Alternative eingefallen...</p>
<p>mfg Ishi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168831</guid><dc:creator><![CDATA[Ishi]]></dc:creator><pubDate>Mon, 16 Jan 2012 16:20:29 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Mon, 16 Jan 2012 16:21:16 GMT]]></title><description><![CDATA[<p>@ Hacker<br />
Das ist nicht das, wonach er gefragt hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168832</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168832</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Mon, 16 Jan 2012 16:21:16 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Mon, 16 Jan 2012 16:22:24 GMT]]></title><description><![CDATA[<p>icarus2 schrieb:</p>
<blockquote>
<p>@ Hacker<br />
Das ist nicht das, wonach er gefragt hat.</p>
</blockquote>
<p>Ich weiß. Wonach der gefragt hat, ist aber Schwachsinn. Man kann nicht einen Bezeichner resetten, oder den Typ eines Vectors ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168836</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Jan 2012 16:22:24 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Mon, 16 Jan 2012 16:24:38 GMT]]></title><description><![CDATA[<p>&quot;Man kann einen Bezeichner nicht resetten&quot; -&gt; Genau das wollte ich wissen.<br />
Habs mir aber eh schon gedacht...</p>
<p>Also geht das was ich vorhatte nicht...</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168837</guid><dc:creator><![CDATA[Ishi]]></dc:creator><pubDate>Mon, 16 Jan 2012 16:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Mon, 16 Jan 2012 16:24:47 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>icarus2 schrieb:</p>
<blockquote>
<p>@ Hacker<br />
Das ist nicht das, wonach er gefragt hat.</p>
</blockquote>
<p>Wonach der gefragt hat, ist aber Schwachsinn. Man kann nicht einen Bezeichner resetten, oder den Typ eines Vectors ändern.</p>
</blockquote>
<p>Da gebe ich dir recht <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/2168839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168839</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Mon, 16 Jan 2012 16:24:47 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Mon, 16 Jan 2012 20:44:58 GMT]]></title><description><![CDATA[<p>icarus2 schrieb:</p>
<blockquote>
<p>Hacker schrieb:</p>
<blockquote>
<p>icarus2 schrieb:</p>
<blockquote>
<p>@ Hacker<br />
Das ist nicht das, wonach er gefragt hat.</p>
</blockquote>
<p>Wonach der gefragt hat, ist aber Schwachsinn. Man kann nicht einen Bezeichner resetten, oder den Typ eines Vectors ändern.</p>
</blockquote>
<p>Da gebe ich dir recht <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>
</blockquote>
<p>Wonach er fragt ist denke ich kein Schwachsinn. Es ist wahrscheinlich 'nur' ziemlich unglücklich formuliert.</p>
<p>Er möchte (vermute ich) den gleichen Algorithmus für verschiedene Datentypen aufrufen.</p>
<p>Dazu machst du aus deiner Funktion eine Template-Funktion und du kannst es für zwei Datentypen ausführen.</p>
<p>Vielleicht hilft dir folgendes weiter:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

struct Foo{
	Foo(int i) : i(i) {}

	void foo() const{
		std::cout &lt;&lt; &quot;foo() &quot; &lt;&lt; i &lt;&lt; std::endl;
	}

	void say() const{
		std::cout &lt;&lt; &quot;say foo() &quot; &lt;&lt; i &lt;&lt; std::endl;
	}

	int i;
};

struct Bar{
	Bar(int i) : i(i) {}

	void bar() const{
		std::cout &lt;&lt; &quot;bar()&quot; &lt;&lt; i &lt;&lt; std::endl;
	}

	void say() const{
		std::cout &lt;&lt; &quot;say bar() &quot; &lt;&lt; i &lt;&lt; std::endl;
	}

	int i;
};

void call_function(const Foo&amp; f){
	f.foo();
}

void call_function(const Bar&amp; b){
	b.bar();
}

template&lt;class T&gt;
void foobar(const std::vector&lt;T&gt; vec){
	for(typename std::vector&lt;T&gt;::const_iterator it=vec.begin(); it!=vec.end(); ++it){
		it-&gt;say();
		call_function(*it); // Ein zusätzlicher Funktionsaufruf, falls 'es nicht genau passt'
	}
}

int main(){
	std::vector&lt;Foo&gt; vec1;
	vec1.push_back(Foo(1));
	vec1.push_back(Foo(2));

	std::vector&lt;Bar&gt; vec2;
	vec2.push_back(Bar(1));
	vec2.push_back(Bar(2));

	foobar(vec1);
	foobar(vec2);
}
</code></pre>
<p>Gruß,<br />
XSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168918</guid><dc:creator><![CDATA[XSpille]]></dc:creator><pubDate>Mon, 16 Jan 2012 20:44:58 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Tue, 17 Jan 2012 12:29:16 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/24036">@XSpille</a><br />
Ich bin mir 90% sicher dass der OP hier was machen will was man als groben Unfug bezeichnen könnte (sollte (müsste)).</p>
<p>Ich gehe davon aus dass das Programm ca. so aussieht.</p>
<pre><code class="language-cpp">std::vector&lt;float&gt; Daten;

void DatenEinlesen()
{
    ...
    Daten.push_back(...);
    Daten.push_back(...);
    ...
}

void IrgendwasRechnen()
{
    ...
    Daten[i] =  ... Daten[j] ...
    ...
}

void IrgendwasAusgeben();

int main()
{
    DatenEinlesen();
    IrgendwasRechnen();
    IrgendwasAusgeben();
}
</code></pre>
<p>Und jetzt will er in IrgendwasRechnen mit double rechnen.<br />
Und daher den Vektor &quot;Daten&quot; (&quot;Element_List&quot;) transmutieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2169093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2169093</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 17 Jan 2012 12:29:16 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Tue, 17 Jan 2012 20:52:46 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Und daher den Vektor &quot;Daten&quot; (&quot;Element_List&quot;) transmutieren.</p>
</blockquote>
<p>Hä? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> &lt;/tuaufdumm&gt;</p>
<p>Also, da gibt es doch eine Fülle von Möglichkeiten. Z.B. Zwei Vectoren machen, und eine Template-Methode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2169308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2169308</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 17 Jan 2012 20:52:46 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Wed, 18 Jan 2012 11:13:10 GMT]]></title><description><![CDATA[<p>@Hacker<br />
Natürlich gibt es da einen Haufen (einfache) Möglichkeiten.</p>
<p>Ich nehme oft das schlimmste an, und wenn ich damit falsch liege, dann bitte um Verzeihung im Voraus.</p>
<p>Ich gehe halt davon aus dass der OP a) nicht wirklich programmieren kann und b) unwillens ist den Bezeichner &quot;Element_List&quot; an allen Stellen in seinem Programm zu ändern (ist ja sooo viel Arbeit).</p>
<p>Und daher den Typ der &quot;Element_List&quot; zur Laufzeit ändern will - was in dynamisch typisierten Sprachen ja durchaus möglich wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2169481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2169481</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 18 Jan 2012 11:13:10 GMT</pubDate></item><item><title><![CDATA[Reply to Typ von vector ändern on Wed, 18 Jan 2012 16:13:04 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Ich nehme oft das schlimmste an, und wenn ich damit falsch liege, dann bitte um Verzeihung im Voraus.</p>
<p>Ich gehe halt davon aus dass der OP a) nicht wirklich programmieren kann und b) unwillens ist den Bezeichner ...</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Ja, so denk ich auch. Es ist mir nur peinlich das zuzugeben <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2169639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2169639</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 18 Jan 2012 16:13:04 GMT</pubDate></item></channel></rss>