<?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[std::map sortieren...]]></title><description><![CDATA[<p>Hi,<br />
das ist mein Code und mein Problem findet ihr unter dem Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;string&gt;
#include &lt;algorithm&gt;
#include &lt;map&gt;

typedef std::map&lt;std::string, int&gt; wordMap;

int main() {
	wordMap words;
	std::string input = &quot;Test, Test, Test, Test... Noch ein Test, loool, lol...&quot;;
	std::string temp;
	for (int i = 0; i &lt; input.length(); ++i) {
		if (isalpha(input[i])) {
			temp += input[i];
		} else {
			if (!temp.empty()) {
				std::transform(temp.begin(), temp.end(), temp.begin(), tolower);
				words[temp] = ++((int)words[temp]);
				temp.clear();
			}
		}
	}

	std::cout &lt;&lt; &quot;-- Result(s) --\n\n&quot;;
	for (wordMap::iterator it = words.begin(); it != words.end(); ++it) {
		std::cout &lt;&lt; (*it).first &lt;&lt; std::setw(25-(*it).first.length()) &lt;&lt; &quot; = &quot; &lt;&lt; std::setw(25) &lt;&lt; (*it).second &lt;&lt; &quot;\n&quot;;
	}
	return 0;
}
</code></pre>
<p>Wie kann ich diese Map jetzt nach der Anzahl sortiert ausgeben? Danke im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201392/std-map-sortieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 02:28:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201392.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 29 Dec 2007 13:43:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::map sortieren... on Sat, 29 Dec 2007 13:43:26 GMT]]></title><description><![CDATA[<p>Hi,<br />
das ist mein Code und mein Problem findet ihr unter dem Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;string&gt;
#include &lt;algorithm&gt;
#include &lt;map&gt;

typedef std::map&lt;std::string, int&gt; wordMap;

int main() {
	wordMap words;
	std::string input = &quot;Test, Test, Test, Test... Noch ein Test, loool, lol...&quot;;
	std::string temp;
	for (int i = 0; i &lt; input.length(); ++i) {
		if (isalpha(input[i])) {
			temp += input[i];
		} else {
			if (!temp.empty()) {
				std::transform(temp.begin(), temp.end(), temp.begin(), tolower);
				words[temp] = ++((int)words[temp]);
				temp.clear();
			}
		}
	}

	std::cout &lt;&lt; &quot;-- Result(s) --\n\n&quot;;
	for (wordMap::iterator it = words.begin(); it != words.end(); ++it) {
		std::cout &lt;&lt; (*it).first &lt;&lt; std::setw(25-(*it).first.length()) &lt;&lt; &quot; = &quot; &lt;&lt; std::setw(25) &lt;&lt; (*it).second &lt;&lt; &quot;\n&quot;;
	}
	return 0;
}
</code></pre>
<p>Wie kann ich diese Map jetzt nach der Anzahl sortiert ausgeben? Danke im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1427601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1427601</guid><dc:creator><![CDATA[BraucheHilfeeee]]></dc:creator><pubDate>Sat, 29 Dec 2007 13:43:26 GMT</pubDate></item><item><title><![CDATA[Reply to std::map sortieren... on Sat, 29 Dec 2007 14:16:53 GMT]]></title><description><![CDATA[<p>void sort( iterator start, iterator end, StrictWeakOrdering cmp );</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1427625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1427625</guid><dc:creator><![CDATA[ppp]]></dc:creator><pubDate>Sat, 29 Dec 2007 14:16:53 GMT</pubDate></item><item><title><![CDATA[Reply to std::map sortieren... on Sat, 29 Dec 2007 14:23:30 GMT]]></title><description><![CDATA[<p>Bringt mich nicht weiter...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1427631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1427631</guid><dc:creator><![CDATA[BraucheHilfeeee]]></dc:creator><pubDate>Sat, 29 Dec 2007 14:23:30 GMT</pubDate></item><item><title><![CDATA[Reply to std::map sortieren... on Sat, 29 Dec 2007 14:31:29 GMT]]></title><description><![CDATA[<p>Du könntest die Werte der Map in eine andere (vertauschte) Map eintragen:</p>
<pre><code class="language-cpp">std::map&lt;int, std::list&lt;std::string&gt; &gt;
</code></pre>
<p>und dann diese Map (sowie die Liste) ausgeben.<br />
Die Liste wird benötigt, da ja mehrere Strings dieselbe Anzahl aufweisen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1427636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1427636</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Sat, 29 Dec 2007 14:31:29 GMT</pubDate></item><item><title><![CDATA[Reply to std::map sortieren... on Wed, 02 Jan 2008 08:44:27 GMT]]></title><description><![CDATA[<p>Man könnte auch gleich eine std:: multimap verwenden, dann braucht man die std::list nichtmehr <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>Oder man stopft die Werte in einen std::vector rein, schreibt seinen eigenen Vergleichs-Funktor, und verwendet std::sort wie im 1. Beitrag schon vorgeschlagen wurde:</p>
<pre><code class="language-cpp">template &lt;class P&gt; struct compare_second
{
    bool operator()(P const&amp; a, P const&amp; b) const
    {
        return a.second &lt; b.second;
    }
};

void foo()
{
    std::map&lt;std::string, int&gt; m;

    // ... m anfüllen ...

    std::vector&lt;std::pair&lt;std::string, int&gt; &gt; v(m.begin(), m.end());
    std::sort(v.begin(), v.end(), compare_second&lt;std::pair&lt;std::string, int&gt; &gt;());
    // ausgeben, fertig.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1429112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429112</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 02 Jan 2008 08:44:27 GMT</pubDate></item></channel></rss>