<?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[Unefizienter Abhängalgo]]></title><description><![CDATA[<p>Folgende Funktion ist viel zu uneffizient</p>
<pre><code class="language-cpp">#pragma once

#include &lt;string&gt;
#include &lt;sstream&gt;
#include &lt;windows.h&gt;
#include &lt;deque&gt;
#include &lt;algorithm&gt;

std::string ModuleInformation(std::string Name,int NameOrLocation, char Trennzeichen)
{
	std::string Datei;
	char zeichen;
	std::string DateiName,Invertiert;
	Datei = Name;
	int length[3];
	int zuruk;
	int Slashcount = 0, Slashcount2 = 0;
	length[1] = Datei.size();
	length[2] = 0;
	bool foundSlash = false;
	while (length[2]&lt;length[1])
	{
		zeichen = Datei[length[2&rsqb;&rsqb;;
		if (zeichen == Trennzeichen)
		{
			Slashcount++;
			foundSlash = true;
		}
		length[2]++;
	}
	if (foundSlash == false)
		return &quot;FAIL&quot;;
	zuruk = 0;
	while (zuruk&lt;length[1])
	{
		zuruk++;
		if (Datei[zuruk-1] == Trennzeichen)
		{
			Slashcount2++;
			if (Slashcount == Slashcount2)
				break;
		}
	}
	DateiName = Datei.substr(zuruk,(length[1]-zuruk+1));
	Invertiert = Datei.substr(0,Datei.size()-DateiName.size());
	if (NameOrLocation == 0)
	{
		return DateiName;
	}
	else
	{
		return Invertiert;
	}
}
</code></pre>
<p>Ich weiß aber nicht wo man was ändern könnte.<br />
Wenn ich sie einfach aus Spaß 3 mal aufrufe statt 1 mal dann ist die Geschwindigkeit in meinem Programm gleich 100 Mal langsamer.<br />
Ich brauch aber jeder Sekunde, weil es sich um ein Suchprogramm handelt (eigener Bauart).<br />
es braucht momentan 1 - 10 Minuten, kommt auf die Einstellungen an<br />
und ich würde gern was kürzen. evtl folgen weitere Funk.,</p>
<p>EDIT: Zeile 30 ist eigentlich nciht nötig aber in ich brauche sie fürs aktuelle Programm (wenn sie nicht da ist wird der String nur um ein Zeichen gekürzt=</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252853/unefizienter-abhängalgo</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 04:54:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252853.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 Oct 2009 14:53:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unefizienter Abhängalgo on Sun, 25 Oct 2009 15:34:42 GMT]]></title><description><![CDATA[<p>Folgende Funktion ist viel zu uneffizient</p>
<pre><code class="language-cpp">#pragma once

#include &lt;string&gt;
#include &lt;sstream&gt;
#include &lt;windows.h&gt;
#include &lt;deque&gt;
#include &lt;algorithm&gt;

std::string ModuleInformation(std::string Name,int NameOrLocation, char Trennzeichen)
{
	std::string Datei;
	char zeichen;
	std::string DateiName,Invertiert;
	Datei = Name;
	int length[3];
	int zuruk;
	int Slashcount = 0, Slashcount2 = 0;
	length[1] = Datei.size();
	length[2] = 0;
	bool foundSlash = false;
	while (length[2]&lt;length[1])
	{
		zeichen = Datei[length[2&rsqb;&rsqb;;
		if (zeichen == Trennzeichen)
		{
			Slashcount++;
			foundSlash = true;
		}
		length[2]++;
	}
	if (foundSlash == false)
		return &quot;FAIL&quot;;
	zuruk = 0;
	while (zuruk&lt;length[1])
	{
		zuruk++;
		if (Datei[zuruk-1] == Trennzeichen)
		{
			Slashcount2++;
			if (Slashcount == Slashcount2)
				break;
		}
	}
	DateiName = Datei.substr(zuruk,(length[1]-zuruk+1));
	Invertiert = Datei.substr(0,Datei.size()-DateiName.size());
	if (NameOrLocation == 0)
	{
		return DateiName;
	}
	else
	{
		return Invertiert;
	}
}
</code></pre>
<p>Ich weiß aber nicht wo man was ändern könnte.<br />
Wenn ich sie einfach aus Spaß 3 mal aufrufe statt 1 mal dann ist die Geschwindigkeit in meinem Programm gleich 100 Mal langsamer.<br />
Ich brauch aber jeder Sekunde, weil es sich um ein Suchprogramm handelt (eigener Bauart).<br />
es braucht momentan 1 - 10 Minuten, kommt auf die Einstellungen an<br />
und ich würde gern was kürzen. evtl folgen weitere Funk.,</p>
<p>EDIT: Zeile 30 ist eigentlich nciht nötig aber in ich brauche sie fürs aktuelle Programm (wenn sie nicht da ist wird der String nur um ein Zeichen gekürzt=</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798023</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:34:42 GMT</pubDate></item><item><title><![CDATA[Reply to Unefizienter Abhängalgo on Sun, 25 Oct 2009 15:10:26 GMT]]></title><description><![CDATA[<p>1. Schmeiß mal alles raus, was keinen Einfluss auf das Ergebnis hat (wozu soll das Array merken gut sein?)<br />
2. Wieso arbeitest du mit Strings der Länge 1 statt mit char?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798027</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:10:26 GMT</pubDate></item><item><title><![CDATA[Reply to Unefizienter Abhängalgo on Sun, 25 Oct 2009 15:10:53 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::string merken[16384];
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Warum nimmst du keinen Vektor und außerdem sieht es mir so aus, als würdest du in merken nur einzelne Buchstaben speichern -&gt; char.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798028</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:10:53 GMT</pubDate></item><item><title><![CDATA[Reply to Unefizienter Abhängalgo on Sun, 25 Oct 2009 15:13:33 GMT]]></title><description><![CDATA[<p>Ineffizient vielleicht. Auf jeden Fall hat man Mühe, dem Code anzusehen, was er eigentlich machen soll. Versuche doch mal das Problem weiter in kleinere Teilprobleme zu zerlegen, die Du mit anderen Funktionen löst. Diesen Teilproblemen kann man so auch einen Namen geben, was das Lesen leichter macht.</p>
<p>Dasselbe gilt für Variablen. length ist bei Dir ein 2-elementiges Array. Diese Eigenschaft nutzt Du aber nirgends aus. Statt length[0] und length[1] findest Du vielleicht noch bessere Namen.</p>
<p>Bzgl Geschwindigkeit: Die Schnippelei in Zeile 21 ist relativ langsam, oder kann es zumindest sein, je nachdem, wie std::string implementiert worden ist. Wenn Du an einzelnen Zeichen interessiert bist, darfst Du auch ruhig char nehmen. Dafür ist es ja da. Also:</p>
<pre><code class="language-cpp">char zeichen = einString[index];
</code></pre>
<p>Dein 16tausend Element Array &quot;merken&quot; scheint auch überflüssig zu sein. Jedes Element speichert ja wirklich nur höchtens <em>ein</em> Zeichen.</p>
<p>Wie gesagt, diese Low-level-Frickelei ist schlecht lesbar.</p>
<p>Du könntest auch mal nachschauen, ob bei std::string oder im &lt;algorithm&gt;-HEader nützliche Funktionen drin stecken.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798031</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:13:33 GMT</pubDate></item><item><title><![CDATA[Reply to Unefizienter Abhängalgo on Sun, 25 Oct 2009 15:13:45 GMT]]></title><description><![CDATA[<p>Hmmm ja, das wär ne möglichkeit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
soll ich ein Vektor oder ein deque nehmen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798033</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:13:45 GMT</pubDate></item><item><title><![CDATA[Reply to Unefizienter Abhängalgo on Sun, 25 Oct 2009 15:15:23 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>Hmmm ja, das wär ne möglichkeit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
soll ich ein Vektor oder ein deque nehmen ?</p>
</blockquote>
<p>Gar nichts. Erklär doch mal, was die Funktion machen soll (nicht wie, sondern was). Ich seh das immer noch nicht.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798034</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:15:23 GMT</pubDate></item><item><title><![CDATA[Reply to Unefizienter Abhängalgo on Sun, 25 Oct 2009 15:34:17 GMT]]></title><description><![CDATA[<p>btw: Wo ist eigentlich der Sinn darin ???<br />
Ich seh keine weitere Verwendung davon. Was ich mir da wohl gedacht hab ?<br />
Warscheinlich ist die Müllabfuhr nicht gekommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>EDIT: da war jemand schneller ^^</p>
<p>EDIT 2: die Funktion hat aber noch ihren sinn</p>
<p>sie trennt einen String nach einem bestimmten Zeichen, ist bei Pfaden ganz nütlzlich kann den Oberordner und die Datei angeben. benutzte es aber für noch mehr, deshalb ist das Trennzeichen angebbar.</p>
<p>EDIT 3: gebracht hat es schon was Code wird gleich oben aktualisiert</p>
<p>EDIT 4: Ups es muss was kaputt gegangen sein, das Programm friert am Ende des Prozess ein, ich guck mal mit dem debugger</p>
<p>EDIT 5: So update Code nochmal jetzt ist wieder alles im Lot</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798037</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:34:17 GMT</pubDate></item><item><title><![CDATA[Reply to Unefizienter Abhängalgo on Sun, 25 Oct 2009 16:39:19 GMT]]></title><description><![CDATA[<p>Wäre das Folgende nicht die selbe Funktionsweise deiner einen Funktion?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

std::string letztesElement(const std::string &amp;str, const char trennzeichen)
{
	std::string::size_type position = str.find_last_of(trennzeichen);
	if(position != std::string::npos) {
		return str.substr(position + 1);
	}
	return &quot;&quot;; // TODO: Besseren Rückgabewert bei &quot;nichts finden&quot;
}

std::string ohneLetztesElement(const std::string &amp;str, const char trennzeichen)
{
	std::string::size_type position = str.find_last_of(trennzeichen);
	if(position != std::string::npos) {
		return str.substr(0, position + 1);
	}
	return &quot;&quot;; // TODO: Besseren Rückgabewert bei &quot;nichts finden&quot;
}

int main()
{
	std::string dateipfad(&quot;C:/Blah/Blah Blah/test.txt&quot;);
	std::cout &lt;&lt; &quot;Dateiname: &quot; &lt;&lt; letztesElement(dateipfad, '/')
			  &lt;&lt; &quot;\nPfad: &quot; &lt;&lt; ohneLetztesElement(dateipfad, '/') &lt;&lt; std::endl;

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1798093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798093</guid><dc:creator><![CDATA[Mizar]]></dc:creator><pubDate>Sun, 25 Oct 2009 16:39:19 GMT</pubDate></item><item><title><![CDATA[Reply to Unefizienter Abhängalgo on Sun, 25 Oct 2009 16:56:52 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
was für eine Abkürzung.<br />
Ja so KKÖÖÖNNTTTEEEE man das auch machen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
ne jetzt mal ehrlich, danke für diese Ultimative Lösung.</p>
<p>Meine hat aber viel Inovation gebraucht, ich hab mir das find last selbst gebastelt nur von vorn <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/1798103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798103</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Sun, 25 Oct 2009 16:56:52 GMT</pubDate></item><item><title><![CDATA[Reply to Unefizienter Abhängalgo on Sun, 25 Oct 2009 17:00:04 GMT]]></title><description><![CDATA[<p>Ey krass alder, der algo hängt voll uneffizient ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798105</guid><dc:creator><![CDATA[johnny rotten]]></dc:creator><pubDate>Sun, 25 Oct 2009 17:00:04 GMT</pubDate></item><item><title><![CDATA[Reply to Unefizienter Abhängalgo on Sun, 25 Oct 2009 17:05:38 GMT]]></title><description><![CDATA[<p>johnny rotten schrieb:</p>
<blockquote>
<p>Ey krass alder, der algo hängt voll uneffizient ab.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798110</guid><dc:creator><![CDATA[oO]]></dc:creator><pubDate>Sun, 25 Oct 2009 17:05:38 GMT</pubDate></item></channel></rss>