<?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[2 Fragen zur std::map]]></title><description><![CDATA[<p>Hallo!<br />
Ich habe mir gerade <a href="http://www.cplusplus.com/reference/stl/map/" rel="nofollow">http://www.cplusplus.com/reference/stl/map/</a> durchgelesen, aber noch ein Paar fragen.</p>
<p>1.) Welche Laufzeit zum finden eines keys hat eine map?</p>
<p>2.) Brauche ich eine compare-Funktion schreiben wenn ich als key std::String verwende? Oder reicht die default variante?</p>
<p>3.) Eignet sich die Map um Resourcen zu verwalten? (Key=Dateiname, T=Bilder)<br />
:xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/296686/2-fragen-zur-std-map</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 18:42:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/296686.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Dec 2011 21:28:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2 Fragen zur std::map on Fri, 09 Dec 2011 21:28:20 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Ich habe mir gerade <a href="http://www.cplusplus.com/reference/stl/map/" rel="nofollow">http://www.cplusplus.com/reference/stl/map/</a> durchgelesen, aber noch ein Paar fragen.</p>
<p>1.) Welche Laufzeit zum finden eines keys hat eine map?</p>
<p>2.) Brauche ich eine compare-Funktion schreiben wenn ich als key std::String verwende? Oder reicht die default variante?</p>
<p>3.) Eignet sich die Map um Resourcen zu verwalten? (Key=Dateiname, T=Bilder)<br />
:xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155191</guid><dc:creator><![CDATA[JJ]]></dc:creator><pubDate>Fri, 09 Dec 2011 21:28:20 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Fri, 09 Dec 2011 21:47:31 GMT]]></title><description><![CDATA[<p>JJ schrieb:</p>
<blockquote>
<p>1.) Welche Laufzeit zum finden eines keys hat eine map?</p>
</blockquote>
<p>Das asymptotische Verhalten steht bei den Funktionen beschrieben. Was das exakt für Laufzeiten sind ist implementierungs- / computerabhängig, das kannst du nur testen.</p>
<p>JJ schrieb:</p>
<blockquote>
<p>2.) Brauche ich eine compare-Funktion schreiben wenn ich als key std::String verwende? Oder reicht die default variante?</p>
</blockquote>
<p>Default reicht.</p>
<p>JJ schrieb:</p>
<blockquote>
<p>3.) Eignet sich die Map um Resourcen zu verwalten? (Key=Dateiname, T=Bilder)</p>
</blockquote>
<p>Ja. Falls du noch mehr Performance rauskitzeln willst, nutzt du nicht std::string sondern ranges die direkt in den Dateipuffer zeigen (der dann natürlich dauerhaft im Speicher bleiben muss), und sortierst erst nach Länge und dann alphabetisch.</p>
<p>PS:<br />
Das waren 3 Fragen. <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/2155195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155195</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 09 Dec 2011 21:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Fri, 09 Dec 2011 21:49:27 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort.</p>
<p>Den Kommentar zu 3.) hab ich nicht verstanden...<br />
Ich möchte doch mit einem key Dateien laden und dann darauf verweisen bzw. nur auf den Speicher verweisen, falls die Datei schonmal geladen wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155199</guid><dc:creator><![CDATA[JJ]]></dc:creator><pubDate>Fri, 09 Dec 2011 21:49:27 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Fri, 09 Dec 2011 21:59:19 GMT]]></title><description><![CDATA[<p>&quot;Ressourcen&quot; klingt für mich so, als würdest du diese aus einer Datei bekommen.<br />
Also in etwa so:</p>
<pre><code>Texture xyz.tga
Model blubb.obj
Texture lol.tga
...
</code></pre>
<p>Und anstatt jetzt für &quot;xyz.tga&quot;, &quot;blubb.obj&quot; und &quot;lol.tga&quot; jeweils einen neuen std::string anzulegen, hälst du den Dateiinhalt einfach im Speicher und baust dir eine Klasse mit begin/end Paaren, die dann auf die Keynamen zeigen. Und nutzt dann eine &quot;std::map&lt;Range, ..&gt;&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155201</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 09 Dec 2011 21:59:19 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Sat, 10 Dec 2011 04:18:57 GMT]]></title><description><![CDATA[<p>JJ schrieb:</p>
<blockquote>
<p>1.) Welche Laufzeit zum finden eines keys hat eine map?</p>
</blockquote>
<p>O(log(N))</p>
<p>JJ schrieb:</p>
<blockquote>
<p>2.) Brauche ich eine compare-Funktion schreiben wenn ich als key std::String verwende? Oder reicht die default variante?</p>
</blockquote>
<p>std::less<a href="std::string" rel="nofollow">std::string</a> sortiert alphabetisch. Wenn du z.B. Anti-alphabetisch (gibts dafür eigentlich ein Wort?) sortieren möchtest, kannst du std::greater<a href="std::string" rel="nofollow">std::string</a> verwenden.</p>
<p>JJ schrieb:</p>
<blockquote>
<p>3.) Eignet sich die Map um Resourcen zu verwalten? (Key=Dateiname, T=Bilder)<br />
:xmas1:</p>
</blockquote>
<p>Was meinst du genau mit &quot;Resourcen verwalten&quot;? Willst du besitzende Zeiger in die Map stecken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155260</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 10 Dec 2011 04:18:57 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Sat, 10 Dec 2011 11:23:59 GMT]]></title><description><![CDATA[<p>Wenn du eine Hashmap möchtest, gäbe es std::unordered_map, vorrausgesetzt deine Standardbibliothek implementiert das schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155315</guid><dc:creator><![CDATA[Ethon__]]></dc:creator><pubDate>Sat, 10 Dec 2011 11:23:59 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Sat, 10 Dec 2011 12:33:08 GMT]]></title><description><![CDATA[<p>JJ schrieb:</p>
<blockquote>
<p>Ich möchte doch mit einem key Dateien laden und dann darauf verweisen bzw. nur auf den Speicher verweisen, falls die Datei schonmal geladen wurde.</p>
</blockquote>
<p>Eine Art Cache... Dafür kann man durchaus eine <code>map&lt;FileNameType, Resource&gt;</code> verwenden. Da vermutlich eine Sortierung nicht benötigt wird, kann man auch eine <code>unordered_map&lt;FileNameType, Resource&gt;</code> verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155340</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sat, 10 Dec 2011 12:33:08 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Sat, 10 Dec 2011 22:58:28 GMT]]></title><description><![CDATA[<blockquote>
<p>Was meinst du genau mit &quot;Resourcen verwalten&quot;? Willst du besitzende Zeiger in die Map stecken?</p>
</blockquote>
<p>Ich möchte Bilder vom Typ sf::Image aus der SFML-Bibliothek in die map stecken und als key dafür ihren Dateinamen verwenden, damit ich bei mehrfachbenutzung eines sf::Image nicht nochmal laden muss, sondern einfach eine Referenz übergebe. Die Klasse die ich dafür schrieb sieht so aus:</p>
<pre><code class="language-cpp">class CResources {
private:
	std::map&lt;std::string, sf::Image&gt; Images;
	const sf::Image&amp; addImage(std::string Filename)  {
		sf::Image newImage;
		if (!newImage.LoadFromFile(Filename)) {
			//Error
		}

		return Images.insert(std::pair&lt;std::string, sf::Image&gt; (Filename, newImage)).first-&gt;second;
	}
public:
	const sf::Image&amp; getImage(std::string Filename) {
		if(Images.find(Filename) != Images.end()) {
			return Images.find(Filename)-&gt;second;
		}
		else {
			return addImage(Filename);
		}
	}
};
</code></pre>
<p>Bekomm ich damit Probleme? Kann es sein das die map intern neu verwaltet und mir meine referenzen auf Mapeinträge ungültig macht? So wie beim std::vector?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155556</guid><dc:creator><![CDATA[JJ]]></dc:creator><pubDate>Sat, 10 Dec 2011 22:58:28 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Sun, 11 Dec 2011 10:10:24 GMT]]></title><description><![CDATA[<p>JJ schrieb:</p>
<blockquote>
<p>Bekomm ich damit Probleme? Kann es sein das die map intern neu verwaltet und mir meine referenzen auf Mapeinträge ungültig macht? So wie beim std::vector?</p>
</blockquote>
<p>Nein die bleiben gültig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155622</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 11 Dec 2011 10:10:24 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Sun, 11 Dec 2011 11:04:09 GMT]]></title><description><![CDATA[<p>Aber du solltest schauen, dass du schwergewichtige Klassen wie <code>sf::Image</code> nicht unnötig kopierst.</p>
<p>D.h. ich würde das Bild zuerst einfügen und dann laden. Ist zwar etwas mühsamer für Rollback-Semantik (zumal <code>sf::Image</code> kein <code>Swap()</code> hat), aber dafür verschwendest du im Normalfall keine Zeit mit Pixel Kopieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155649</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 11 Dec 2011 11:04:09 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Sun, 11 Dec 2011 12:14:54 GMT]]></title><description><![CDATA[<p>Oder du nimmst std::move. <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/2155687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155687</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 11 Dec 2011 12:14:54 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Sun, 11 Dec 2011 12:22:23 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Oder du nimmst std::move. <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>Was nur was bringt, wenn <code>sf::Image</code> movable ist. Entweder durch selbst definierten Move-Konstruktor und -Zuweisungsoperator oder durch einen automatisch generierten, sofern der Compiler es unterstützt und die Big Three nicht definiert wurden.</p>
<p><code>std::move()</code> ist eine gute Sache, aber bis es konsequent eingesetzt werden kann, werden noch einige Jahre ins Land ziehen... :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155692</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 11 Dec 2011 12:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Sun, 11 Dec 2011 19:11:07 GMT]]></title><description><![CDATA[<p>Bei &quot;schwergewichtigen&quot; Klassen wie <code>sf::Image</code> kann man IMO bedenkenlos zu <code>std::shared_ptr</code> bzw. <code>boost::shared_ptr</code> greifen, wenn man sich das Leben damit leichter machen kann.<br />
Also <code>std::map&lt;std::string, std::shared_ptr&lt;sf::image&gt;&gt;</code> .<br />
Bzw. wenn man unbedingt will kann man auch <code>std::unique_ptr</code> verwenden.</p>
<p>In dem Fall würde ich wohl eher <code>std::shared_ptr</code> wählen: wieso verbieten dass der &quot;Client-Code&quot; ein <code>sf::Image</code> weiterverwendet, nachdem das Manager-Objekt ( <code>CResources</code> ) bereits zerstört wurde?</p>
<p>Dann kann man weiterhin das Bild erstmal vollständig laden, und erst danach in die <code>map</code> einfügen -&gt; kein Rollback mehr nötig.<br />
Beim kopieren des <code>shared_ptr</code> (Einfügen in die Map) fallen dann 2-3 Interlocked Befehle an, was aber in diesem Fall kaum ins Gewicht fallen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155854</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 11 Dec 2011 19:11:07 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Mon, 12 Dec 2011 01:14:22 GMT]]></title><description><![CDATA[<p>Das mit dem shared_ptr hört sich gut an. Allerdings sag mir der Compiler das er std::shared_ptr nicht kennt. Was muss ich dafür installieren/einbinden?</p>
<p>Was ist hier mit Rollback gemeint?<br />
Und was sind Interlocked Befehle?</p>
<p>Und noch eine Frage:<br />
Wenn ich sowas schreiben würde:</p>
<pre><code class="language-cpp">std::vector&lt;CClass*&gt; CClassVec;
   CClassVec.push_back(&amp;CClass());
</code></pre>
<p>wie lange lebt CClass im vector?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156001</guid><dc:creator><![CDATA[JJ]]></dc:creator><pubDate>Mon, 12 Dec 2011 01:14:22 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Mon, 12 Dec 2011 01:20:27 GMT]]></title><description><![CDATA[<p>Damit gibst du einen Pointer auf ein temporäres Objekt zurück, das sofort nach dem Befehl zerstört wird. Keine gute Idee. <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="😉"
    /><br />
Für shared_ptr brauchst du &lt;memory&gt;. Ich würde allerdings unique_ptr empfehlen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156002</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 12 Dec 2011 01:20:27 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Mon, 12 Dec 2011 07:18:25 GMT]]></title><description><![CDATA[<p>JJ schrieb:</p>
<blockquote>
<p>Und was sind Interlocked Befehle?</p>
</blockquote>
<p>Ein shared_ptr hält intern einen (um genau zu sein zwei, aber das ist im Moment nebensächlich) Referenzzähler. Wenn ein shared_ptr kopiert wird, wird der Zähler inkrementiert. Wird ein shared_ptr zerstört, dann wird er dekrementiert. Sobald der Refernzzähler auf 0 geht, wird das Objekt zerstört. Dieses Inkrementieren und Dekrementieren wird über Funktionen gemacht, die threadsicher sind, damit die Referenzzähler immer &quot;richtig&quot; bleiben.</p>
<p>JJ schrieb:</p>
<blockquote>
<p>Und noch eine Frage:<br />
Wenn ich sowas schreiben würde:</p>
<pre><code class="language-cpp">std::vector&lt;CClass*&gt; CClassVec;
   CClassVec.push_back(&amp;CClass());
</code></pre>
<p>wie lange lebt CClass im vector?</p>
</blockquote>
<p>Ganz einfach: Du holst die Addresse eines temporären Objekts, somit wird das Objekt gleich wieder zerstört und du hast einen ungültigen Zeiger eingefügt.</p>
<p>cooky451 schrieb:</p>
<blockquote>
<p>Ich würde allerdings unique_ptr empfehlen.</p>
</blockquote>
<p>Das hängt wirklich vom Anwendungsfall ab. Mir gefällt die Idee von hustbaer eigentlich ziemlich gut. Vor allem könnte man im Client-Code auch weak_ptr auf die Objekte halten, was mir auch nützlich erscheint.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156019</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 12 Dec 2011 07:18:25 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Mon, 12 Dec 2011 16:40:25 GMT]]></title><description><![CDATA[<p>Hallo nochmal :xmas1: !</p>
<p>Bin grad den Boost::shared_ptr am einbinden und bin dann nach etlichen Fehlermeldungen bei diesem compilierbaren Code gelandet:</p>
<pre><code class="language-cpp">#pragma once
#include &lt;map&gt;
#include &lt;SFML/Graphics.hpp&gt;
#include &lt;Boost/shared_ptr.hpp&gt;

class CResources {
private:
	std::map&lt;std::string, boost::shared_ptr&lt;sf::Image&gt;&gt; Images;
	const boost::shared_ptr&lt;sf::Image&gt; addImage(std::string Filename) {
		boost::shared_ptr&lt;sf::Image&gt; newImage(new sf::Image());

		#pragma region Errormessages
			if (!newImage.get()-&gt;LoadFromFile(Filename)) {
				std::cerr &lt;&lt; &quot;const CResources::addImage(std::string Filename)\n&quot;;
				std::cerr &lt;&lt; &quot;I/O error while reading file. File may not exist:\n \&quot;&quot; &lt;&lt; Filename &lt;&lt; &quot;\&quot;&quot; &lt;&lt; std::endl;
			}
		#pragma endregion

		std::pair&lt;std::string,  boost::shared_ptr&lt;sf::Image&gt;&gt; newInsert(Filename, newImage);
		return Images.insert(newInsert).first-&gt;second;
	}
public:
	const boost::shared_ptr&lt;sf::Image&gt; getImage(std::string Filename) {
		if(Images.find(Filename) != Images.end()) {
			return Images.find(Filename)-&gt;second;
		}
		else {
			return addImage(Filename);
		}
	}
};
</code></pre>
<p>Ist das ok so? Verwende ich die Container sinngemäß? Sollte ich die namespaces weglassen? (also using namespace std etc. einfügen) ich finde das sieht einwenig unübersichtlich aus im moment. Für ein paar gute Codeschnipsel wäre ich dankbar :).</p>
<p>Danke für eure Mühe!<br />
Bisher bin ich gut vorwärts gekommen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156200</guid><dc:creator><![CDATA[JJ]]></dc:creator><pubDate>Mon, 12 Dec 2011 16:40:25 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Mon, 12 Dec 2011 16:52:24 GMT]]></title><description><![CDATA[<p>Warum nutzt du nicht std::shared_ptr? (Oder unique_...^^)<br />
Ansonsten:<br />
- Hilft dir das #pragma region wirklich? Das sind doch nur 4 Zeilen.<br />
- Zeile 20: &quot;auto NewInsert = std::make_pair(Filename, NewImage);&quot; Oder gleich die Zeile weg und insert(std::make_pair(..));<br />
- Zeile 25: Warum durchsuchst du die map zwei mal? Das ist doch eine ziemliche Performanceverschwendung. Ich denke mal nicht, dass das optimiert wird. Wie wäre es mit:</p>
<pre><code class="language-cpp">auto found = Images.find(Filename);
if (found != std::end(Images))
  ..
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2156203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156203</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 12 Dec 2011 16:52:24 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Mon, 12 Dec 2011 17:11:43 GMT]]></title><description><![CDATA[<p>Das #pragma region hab ich überall bei den Fehlermeldungen, dann steht da immer eine Zeile &quot;Errormessages&quot;, statt eine fetter Block mit fehlerbehandlungsroutinen.</p>
<p>Warum ich boost::shared_ptr statt std::shared_ptr verwende?<br />
Ich habe versucht &lt;memory&gt; zu includen ging dann immernoch nicht, dann hab ich mir einfach boost gezogen, das brauche ich wahrscheinlich sowieso in naher Zukunft :).</p>
<p>auto frisst mein complier nicht.</p>
<pre><code>Error	1	error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Error	2	error C2440: 'initializing' : cannot convert from 'std::_Tree&lt;_Traits&gt;::iterator' to 'int'
Error	3	error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Error	4	error C2440: 'initializing' : cannot convert from 'std::_Tree&lt;_Traits&gt;::iterator' to 'int'
</code></pre>
<p>Ich hab VS 2008, liegt das daran?<br />
Ich glaub deshalb habe ich auch das std::shared_ptr nicht...</p>
<p>Hab stattdessen das ganze ausgeschrieben:</p>
<pre><code class="language-cpp">std::map&lt;std::string, boost::shared_ptr&lt;sf::Image&gt;&gt;::iterator Found(Images.find(Filename));
		if(Found != Images.end()) {
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2156220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156220</guid><dc:creator><![CDATA[JJ]]></dc:creator><pubDate>Mon, 12 Dec 2011 17:11:43 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Mon, 12 Dec 2011 19:41:05 GMT]]></title><description><![CDATA[<p>JJ schrieb:</p>
<blockquote>
<p>auto frisst mein complier nicht.<br />
[...]<br />
Ich hab VS 2008, liegt das daran?<br />
Ich glaub deshalb habe ich auch das std::shared_ptr nicht...</p>
</blockquote>
<p>Ja liegt daran und du glaubst richtig <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>Wobei shared_ptr im &quot;Feature Pack&quot; für VS 2008 drinnen ist, bzw. genau so im SP1.<br />
Allerdings nur mit Visual Studio Versionen &gt;= Standard (d.h. NICHT Express).</p>
<p>Aber nimm ruhig Boost, dort ist shared_ptr gewachsen, und die funktionieren zu 99% gleich wie die in std::.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156286</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 12 Dec 2011 19:41:05 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Fragen zur std::map on Tue, 13 Dec 2011 00:05:42 GMT]]></title><description><![CDATA[<p>Der Boost ptr dürfte zwar wirklich keinen Unterschied machen, aber warum nutzt du nicht gleich VS 2010 und nutzt dann auto etc.?<br />
Die C++11 Teile die Microsoft da schon implementiert hat sind doch viel zu hüsch um auf sie zu verzichten. <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/2156377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156377</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 13 Dec 2011 00:05:42 GMT</pubDate></item></channel></rss>