<?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[zugriff auf strukturen in arrays]]></title><description><![CDATA[<p>ich habe eine klasse für arrays, aber wenn ich strukturen darin ablege weiß ich nicht ganz wie ich darauf zugreifen kann... folgende funktion(unten) fkt. schonmal nicht!</p>
<pre><code class="language-cpp">template &lt;class T&gt;
class array
{
    private:
	T *array_eindim;

	unsigned int zeilen_array;
	unsigned int index_z;

    public:
	array();
	array(unsigned int z);
	array(array&lt;T&gt; const&amp; ref);
	~array();

	T *get_array();
	T get_element(unsigned int zeile);
	//unsigned int get_zeilen(); //sinnlos

	void ausgabe_array();
	void set_dim(unsigned int z);

	void push_back(T data);//zu machen
	void push_back(T *feld, unsigned int zeilen_feld);
	void push_pos(T data, int pos_z);
	void push_pos(T *feld, unsigned int zeilen_feld, int pos_z);

	T mult(T *feld, unsigned int zeilen_feld);

	int _struct_search_(T data);

	void clear_all();
};
</code></pre>
<p>...</p>
<pre><code class="language-cpp">/////////////////////////////////PROJEKT_T_PARSER////////////////////////////////////////////////////////
template &lt;class T&gt;
int array&lt;T&gt;::_struct_search_(T data)
{
	int pos;
	struct *s;

	for(unsigned int i = 0; i &lt; index_z; i++) //muss eh nie weiter als bis zur letzten benutzten zeile
	{
		s = &amp;array_eindim[i];

		if(*s.pos == data)
		{
			pos = i;
			return pos;
		}
		else return false;
	}
}
/////////////////////////////////PROJEKT_T_PARSER////////////////////////////////////////////////////////
</code></pre>
<p>mir kams nur so in den kopf das es so ausehen könnte, also bitte nicht böse sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> auf jeden fall muss ich in dieser suchfunktion an einer stelle des arrays, in dem ein struktur liegt, in dieser struktur nach daten suchen.</p>
<p>angenommen so sieht die struktur aus:</p>
<pre><code class="language-cpp">struct mat_data
{
	char sign;
	int pos;
}md;
</code></pre>
<p>wie kann ich in einem solchen array voller strukturen nach der variable pos suchen?</p>
<p>bei bedarf kann ich noch die klassenimplementation posten...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/123504/zugriff-auf-strukturen-in-arrays</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 14:58:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/123504.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Oct 2005 15:31:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to zugriff auf strukturen in arrays on Mon, 17 Oct 2005 15:31:59 GMT]]></title><description><![CDATA[<p>ich habe eine klasse für arrays, aber wenn ich strukturen darin ablege weiß ich nicht ganz wie ich darauf zugreifen kann... folgende funktion(unten) fkt. schonmal nicht!</p>
<pre><code class="language-cpp">template &lt;class T&gt;
class array
{
    private:
	T *array_eindim;

	unsigned int zeilen_array;
	unsigned int index_z;

    public:
	array();
	array(unsigned int z);
	array(array&lt;T&gt; const&amp; ref);
	~array();

	T *get_array();
	T get_element(unsigned int zeile);
	//unsigned int get_zeilen(); //sinnlos

	void ausgabe_array();
	void set_dim(unsigned int z);

	void push_back(T data);//zu machen
	void push_back(T *feld, unsigned int zeilen_feld);
	void push_pos(T data, int pos_z);
	void push_pos(T *feld, unsigned int zeilen_feld, int pos_z);

	T mult(T *feld, unsigned int zeilen_feld);

	int _struct_search_(T data);

	void clear_all();
};
</code></pre>
<p>...</p>
<pre><code class="language-cpp">/////////////////////////////////PROJEKT_T_PARSER////////////////////////////////////////////////////////
template &lt;class T&gt;
int array&lt;T&gt;::_struct_search_(T data)
{
	int pos;
	struct *s;

	for(unsigned int i = 0; i &lt; index_z; i++) //muss eh nie weiter als bis zur letzten benutzten zeile
	{
		s = &amp;array_eindim[i];

		if(*s.pos == data)
		{
			pos = i;
			return pos;
		}
		else return false;
	}
}
/////////////////////////////////PROJEKT_T_PARSER////////////////////////////////////////////////////////
</code></pre>
<p>mir kams nur so in den kopf das es so ausehen könnte, also bitte nicht böse sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> auf jeden fall muss ich in dieser suchfunktion an einer stelle des arrays, in dem ein struktur liegt, in dieser struktur nach daten suchen.</p>
<p>angenommen so sieht die struktur aus:</p>
<pre><code class="language-cpp">struct mat_data
{
	char sign;
	int pos;
}md;
</code></pre>
<p>wie kann ich in einem solchen array voller strukturen nach der variable pos suchen?</p>
<p>bei bedarf kann ich noch die klassenimplementation posten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894273</guid><dc:creator><![CDATA[exigoner]]></dc:creator><pubDate>Mon, 17 Oct 2005 15:31:59 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf strukturen in arrays on Mon, 17 Oct 2005 15:35:09 GMT]]></title><description><![CDATA[<p>Afaik bindet das . stärker als das *, um das auszugleichen, nimmst du entweder Klammern &quot;(*s).pos&quot; oder gleich den -&gt; Operator &quot;s-&gt;pos&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894276</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 17 Oct 2005 15:35:09 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf strukturen in arrays on Mon, 17 Oct 2005 18:22:43 GMT]]></title><description><![CDATA[<p>naja, ich bekomm auch noch meldungen das pos also der dateninhalt der struct kein typ ist. also meine frage ist wie ich auf den inhalt zugreife....<br />
wie machst du das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894441</guid><dc:creator><![CDATA[exigoner]]></dc:creator><pubDate>Mon, 17 Oct 2005 18:22:43 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf strukturen in arrays on Mon, 17 Oct 2005 18:43:40 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct *s;
</code></pre>
<p>Hmmm, komisches konstrukt. Ich muss dich Leider entäuschen aber sowas geht nicht <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>struct ist kein Datentyp wie int oder andere.<br />
Du willst ja ein Zeiger auf eine struktur und zwar auf die Struktur die du in deinem Array hast. Und woher kriegst du raus welchen strukturtyp du hast...</p>
<p>Genau mit deinem template parameter T.</p>
<p>Also sollte die Stelle so aussehen:</p>
<pre><code class="language-cpp">T *s;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/894468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894468</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 17 Oct 2005 18:43:40 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf strukturen in arrays on Mon, 17 Oct 2005 18:59:39 GMT]]></title><description><![CDATA[<p>ich hätte nicht gedacht dass ich in eine variable eine struktur packen kann?!</p>
<pre><code class="language-cpp">template &lt;class T&gt;
int array&lt;T&gt;::_struct_search_(T data)
{
	int pos;
	T *s;

	for(unsigned int i = 0; i &lt; index_z; i++) //muss eh nie weiter als bis zur letzten benutzten zeile
	{
		s = &amp;array_eindim[i];

		if(s-&gt;pos == data)
		{
			pos = i;
			return pos;
		}
		else return false;
	}
}
</code></pre>
<p>und du meinst, dass das oben funzt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/894488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894488</guid><dc:creator><![CDATA[exigoner]]></dc:creator><pubDate>Mon, 17 Oct 2005 18:59:39 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf strukturen in arrays on Mon, 17 Oct 2005 19:19:41 GMT]]></title><description><![CDATA[<p>exigoner schrieb:</p>
<blockquote>
<p>ich hätte nicht gedacht dass ich in eine variable eine struktur packen kann?!</p>
</blockquote>
<p>T ist keine Variable sondern ein generischer Datentyp <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/894517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894517</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 17 Oct 2005 19:19:41 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf strukturen in arrays on Tue, 18 Oct 2005 08:17:09 GMT]]></title><description><![CDATA[<p>jetzt wo dus sagst :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894818</guid><dc:creator><![CDATA[exigoner]]></dc:creator><pubDate>Tue, 18 Oct 2005 08:17:09 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf strukturen in arrays on Tue, 18 Oct 2005 09:07:01 GMT]]></title><description><![CDATA[<p>ich bekomm leider immer noch problme:<br />
wenn ich versuche die geteilten arrays zusammenzusetzen:</p>
<pre><code class="language-cpp">char* convert::own_str()
{
	for(int i = 0; i &lt;= str_length; i++)
	{
		new_str[i] = verify_search(numbers, letters, extra, i);
	}
	return new_str;
}
</code></pre>
<pre><code>instantiated from here
</code></pre>
<p>dann bekomm ich diverse fehler an verschiedenen stellen (s.u.).<br />
wenn ichallerdings</p>
<pre><code class="language-cpp">new_str[i] = verify_search(numbers, letters, extra, i);
</code></pre>
<p>auskommentiere compilliert er aber ohne meckern (nat. auch unteren code) :</p>
<p>SONST:</p>
<pre><code class="language-cpp">template&lt;class A&gt;
char verify_search(array&lt;A&gt; mat1, array&lt;A&gt; mat2, array&lt;A&gt; mat3, int pos)
{
	A s;
	char c;
	if(mat1._struct_search_(pos))
	{
		int z = mat1._struct_search_(pos);
		s = mat1.get_element(z);
		c = s.sign;
		return c;
	}
	if(mat2._struct_search_(pos))
	{
		int z = mat2._struct_search_(pos);
		s = mat2.get_element(z);
		c = s.sign;
		return c;
	}
	if(mat3._struct_search_(pos))
	{
		int z = mat3._struct_search_(pos);
		s = mat3.get_element(z);
		c = s.sign;
		return c;
	}
}
</code></pre>
<pre><code>no matching function for call to `array&lt;mat_data&gt;::_struct_search_(int&amp;)'
</code></pre>
<pre><code class="language-cpp">template &lt;class T&gt;
int array&lt;T&gt;::_struct_search_(T data)
{
	T *s;

	for(unsigned int i = 0; i &lt; index_z; i++) //muss eh nie weiter als bis zur letzten benutzten zeile
	{
		s = &amp;array_eindim[i];

		if(s-&gt;pos == data)
			return i;

		else return false;
	}
}
</code></pre>
<pre><code>candidates are: int array&lt;T&gt;::_struct_search_(T) [with T = mat_data]
</code></pre>
<p>dafür funktioniert meine neue ausgabefkt. aber einwand-frei <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>
<pre><code class="language-cpp">template &lt;class T&gt;
void array&lt;T&gt;::_ausgabe_struct_array_()
{
	T *var;

	for(unsigned int i = 0; i &lt; index_z; i++)
	{
		std::cout&lt;&lt;&quot;\n&quot;;
		var = &amp;array_eindim[i];
		std::cout&lt;&lt;&quot;sign: &quot;&lt;&lt;var-&gt;sign&lt;&lt;&quot; pos: &quot;&lt;&lt;var-&gt;pos;
	}
    if(zeilen_array == 0)
        std::cout &lt;&lt; &quot;Array leer!&quot; &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/894844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894844</guid><dc:creator><![CDATA[exigoner]]></dc:creator><pubDate>Tue, 18 Oct 2005 09:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf strukturen in arrays on Tue, 18 Oct 2005 10:43:32 GMT]]></title><description><![CDATA[<p>Der Fehler ist doch ganz klar: Du hast eine Funktion</p>
<pre><code class="language-cpp">int array&lt;mat_data&gt;::_struct_search_(mat_data)
</code></pre>
<p>Aber für deinen Such-Code benötigst du etwas ganz anderes:</p>
<pre><code class="language-cpp">int array&lt;mat_data&gt;::_struct_search_(int&amp;)
</code></pre>
<p>(zehn Strafpunkte für jeden, der den Unterschied nicht erkennt ;))</p>
<p>Btw, wenn du sowieso nur mit &quot;struct mat_data&quot; als Datentyp arbeitest, wozu brauchst du dann Templates?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894962</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 18 Oct 2005 10:43:32 GMT</pubDate></item></channel></rss>