<?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::string als Index für eigene Klasse]]></title><description><![CDATA[<p>Guten abend allerseits!</p>
<p>Ich probiere mich gerade an einer Implementierung des Quine-McCluskey Algortihmus'. Zu diesem Zweck möchte ich eine neue Klasse definieren, die mit Hilfe eines überladenen Indexoperators die Wahrheitstabelle für einen Ein- oder Ausgang (automatisch auswählen) ausgibt.</p>
<p>Meine Code sieht momentan wie folgt aus:</p>
<p>Header:</p>
<pre><code class="language-cpp">using namespace std;

typedef vector &lt; string &gt; stringlist;
typedef vector &lt; stringlist &gt; t_table;

class QMClist {
private:
	stringlist _indices_in;
	stringlist _indices_out;
	t_table _invals;
	t_table _outvals;
public:
	stringlist&amp; operator[](string x);
	QMClist(stringlist indices_in, stringlist indices_out);
	void fill(string filename);
};
</code></pre>
<p>Source:</p>
<pre><code class="language-cpp">stringlist&amp; QMClist::operator[](string x) {
	for (int _i = 0; _i &lt; (int)_indices_in.size(); _i++) {
		if (_indices_in[_i] == x) return _invals[_i];
	}
	for (int _i = 0; _i &lt; (int)_indices_out.size(); _i++) {
		if (_indices_out[_i] == x) return _outvals[_i];
	}
	throw std::out_of_range (&quot;No Value found.&quot;);
}

QMClist::QMClist(stringlist indices_in,stringlist indices_out) {
	_indices_in = indices_in;
	_indices_out = indices_out;
}

void QMClist::fill(string filename) {
	string _at = &quot;a&quot;;
	this[_at]-&gt;push_back(&quot;test&quot;);
}
</code></pre>
<p>Beim kompilieren des Codes gibt mir der Compiler folgende Errors aus:</p>
<pre><code>1&gt;class_qmclist.cpp(18): error C2677: Binärer Operator '[': Es konnte kein globaler Operator gefunden werden, der den Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)
1&gt;class_qmclist.cpp(18): error C2227: Links von &quot;-&gt;push_back&quot; muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
</code></pre>
<p>&quot;this[_at]-&gt;push_back(&quot;test&quot;);&quot; ist also offenbar falsch. Kann mir jemand helfen und mir sagen wie es richtig sein müsste?</p>
<p>Danke im Voraus!</p>
<p>MFG TLuc</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300658/std-string-als-index-für-eigene-klasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 19:27:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300658.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Mar 2012 17:03:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::string als Index für eigene Klasse on Wed, 07 Mar 2012 17:03:14 GMT]]></title><description><![CDATA[<p>Guten abend allerseits!</p>
<p>Ich probiere mich gerade an einer Implementierung des Quine-McCluskey Algortihmus'. Zu diesem Zweck möchte ich eine neue Klasse definieren, die mit Hilfe eines überladenen Indexoperators die Wahrheitstabelle für einen Ein- oder Ausgang (automatisch auswählen) ausgibt.</p>
<p>Meine Code sieht momentan wie folgt aus:</p>
<p>Header:</p>
<pre><code class="language-cpp">using namespace std;

typedef vector &lt; string &gt; stringlist;
typedef vector &lt; stringlist &gt; t_table;

class QMClist {
private:
	stringlist _indices_in;
	stringlist _indices_out;
	t_table _invals;
	t_table _outvals;
public:
	stringlist&amp; operator[](string x);
	QMClist(stringlist indices_in, stringlist indices_out);
	void fill(string filename);
};
</code></pre>
<p>Source:</p>
<pre><code class="language-cpp">stringlist&amp; QMClist::operator[](string x) {
	for (int _i = 0; _i &lt; (int)_indices_in.size(); _i++) {
		if (_indices_in[_i] == x) return _invals[_i];
	}
	for (int _i = 0; _i &lt; (int)_indices_out.size(); _i++) {
		if (_indices_out[_i] == x) return _outvals[_i];
	}
	throw std::out_of_range (&quot;No Value found.&quot;);
}

QMClist::QMClist(stringlist indices_in,stringlist indices_out) {
	_indices_in = indices_in;
	_indices_out = indices_out;
}

void QMClist::fill(string filename) {
	string _at = &quot;a&quot;;
	this[_at]-&gt;push_back(&quot;test&quot;);
}
</code></pre>
<p>Beim kompilieren des Codes gibt mir der Compiler folgende Errors aus:</p>
<pre><code>1&gt;class_qmclist.cpp(18): error C2677: Binärer Operator '[': Es konnte kein globaler Operator gefunden werden, der den Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)
1&gt;class_qmclist.cpp(18): error C2227: Links von &quot;-&gt;push_back&quot; muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
</code></pre>
<p>&quot;this[_at]-&gt;push_back(&quot;test&quot;);&quot; ist also offenbar falsch. Kann mir jemand helfen und mir sagen wie es richtig sein müsste?</p>
<p>Danke im Voraus!</p>
<p>MFG TLuc</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189519</guid><dc:creator><![CDATA[TLuc]]></dc:creator><pubDate>Wed, 07 Mar 2012 17:03:14 GMT</pubDate></item><item><title><![CDATA[Reply to std::string als Index für eigene Klasse on Wed, 07 Mar 2012 17:34:53 GMT]]></title><description><![CDATA[<p><code>(*this)[_at]</code> oder <code>operator [] (_at)</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189533</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 07 Mar 2012 17:34:53 GMT</pubDate></item><item><title><![CDATA[Reply to std::string als Index für eigene Klasse on Wed, 07 Mar 2012 17:38:11 GMT]]></title><description><![CDATA[<p>Vielen Dank!!!</p>
<p>Das Brett das vor meinem Kopf war darfst du behalten wenn du willst <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/2189535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189535</guid><dc:creator><![CDATA[TLuc]]></dc:creator><pubDate>Wed, 07 Mar 2012 17:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to std::string als Index für eigene Klasse on Wed, 07 Mar 2012 20:52:39 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/u100590" rel="nofollow">Martin Richter</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/f1" rel="nofollow">MFC (Visual C++)</a> in das Forum <a href="http://www.c-plusplus.net/forum/f15" rel="nofollow">C++ (auch C++0x und C++11)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189590</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Wed, 07 Mar 2012 20:52:39 GMT</pubDate></item></channel></rss>