<?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[vector durchlaufen]]></title><description><![CDATA[<p>Guten Morgen.<br />
Ich wollte meinen vector durchlaufen der so ausieht:</p>
<pre><code>lo:  167027     548    0    0    0     0          0         0   167027     548    0    0    0     0       0          0
 wlan0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth0: 39072289   41342    0    0    0     0          0      3348  4363113   28697    0    0    0     0       0          0
</code></pre>
<p>d.h. von lo gibt es einmal die ganzen Daten dann von wlan0 und so weiter. Nun kann es aber auch sein das es nur 2 gibt oder auch 4. D.h. ich hab mir eine Funktion nextNet gebaut allerdings klappt die nicht so ganz.</p>
<pre><code class="language-cpp">bool SYSInfo::nextNet(){
  if(dev.empty()) return false;
  if(dev &lt; 0){
    dev=dev.at(0);
    read_dev();
    return true;
  }
  std::vector&lt;face&gt;::iterator it;
  int i = 0;
  for ( it=dev.begin(); it &lt; dev.end(); it++ ) {
    if(*it==dev &amp;&amp; i + 1 &lt; (int)dev.size()){
      dev=dev.at(i + 1);
      read_dev;
      return true;
    }
    i++;
  }
  return false;
}
</code></pre>
<p>-wenn dev leer = false<br />
-wenn dev kleiner als 0<br />
-dev auf die postion N ( in diesem fall 0)<br />
-read_dev funktion<br />
-gebe true zurück</p>
<p>-(it auf begin setzen / wenn it kleiner ist als dev.end / it soll um einen erhöht werden<br />
-wenn it auf dev zeigt (false) i + 1 (true) kleiner als anzahl der elemente in dev<br />
-setze dev auf position N (i + 1)<br />
- read_dev funktion<br />
-gebe true zurück</p>
<p>-i um 1 erhöhen</p>
<p>(hab mir gedacht so seht ihr ob ich es verstanden hab oder ob ich da was falsch eingebaut hab.)</p>
<p>so sieht mein vector aus:</p>
<pre><code class="language-cpp">struct face{ 
    std::string name; 
    unsigned int bytes_received; 
    unsigned int packets_received; 
    unsigned int errs_received; 
    unsigned int drop_received; 
    unsigned int fifo_received; 
    unsigned int frame_received; 
    unsigned int compressed_received; 
    unsigned int multicast_received; 
    unsigned int bytes_transmitted; 
    unsigned int packets_transmitted; 
    unsigned int errs_transmitted; 
    unsigned int drop_transmitted; 
    unsigned int fifo_transmitted; 
    unsigned int colls_transmitted; 
    unsigned int carrier_transmitted; 
    unsigned int compressed_transmitted; 
  };

class ....

....

  private:
    std::vector&lt;face&gt; dev;
</code></pre>
<p>read_dev:</p>
<pre><code class="language-cpp">void SYSInfo::read_dev(){ 
  std::ifstream file(&quot;/proc/net/dev&quot;); 
  file &gt;&gt; skip_line; // Überspringe erste Zeile. 
  file &gt;&gt; skip_line; // Überspringe zweite Zeile. 
  for(face f; file&gt;&gt;f; dev.push_back(f)); 
}
</code></pre>
<p>Der Fehler ist das er meine Operatoren nicht anerkennt. Ich denke das passiert durch meine Operatoren überladung oben:</p>
<pre><code class="language-cpp">std::istream&amp; skip_line(std::istream&amp; in){ 
  return in.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(),'\n'); 
} 

std::istream&amp; operator&gt;&gt;(std::istream&amp; in, face&amp; f){ 
  return in 
  &gt;&gt; f.name 
  &gt;&gt; f.bytes_received &gt;&gt; f.packets_received &gt;&gt; f.errs_received &gt;&gt; f.drop_received &gt;&gt; f.fifo_received &gt;&gt; f.frame_received &gt;&gt; f.compressed_received &gt;&gt; f. multicast_received         &gt;&gt; f.bytes_transmitted &gt;&gt; f.packets_transmitted &gt;&gt; f.errs_transmitted &gt;&gt; f.drop_transmitted &gt;&gt; f.fifo_transmitted &gt;&gt; f.colls_transmitted &gt;&gt; f.carrier_transmitted &gt;&gt; f.compressed_transmitted; 
} 

std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const face&amp; f){ 
  return out 
  &lt;&lt; f.name &lt;&lt; &quot;Bytes: &quot; 
  &lt;&lt; f.bytes_received    &lt;&lt; &quot; Packets: &quot; &lt;&lt; f.packets_received    &lt;&lt; &quot; Errs: &quot; &lt;&lt; f.errs_received       &lt;&lt; &quot; Drop: &quot; &lt;&lt; f.drop_received       &lt;&lt; &quot; Fifo: &quot; 
  &lt;&lt; f.fifo_received     &lt;&lt; &quot; Frame: &quot; &lt;&lt; f.frame_received      &lt;&lt; &quot; Compressed: &quot; &lt;&lt; f.compressed_received &lt;&lt; &quot; Multicast: &quot; &lt;&lt; f. multicast_received &lt;&lt; &quot; Bytes: &quot; 
  &lt;&lt; f.bytes_transmitted &lt;&lt; &quot; Packets: &quot; &lt;&lt; f.packets_transmitted &lt;&lt; &quot; Errs: &quot; &lt;&lt; f.errs_transmitted    &lt;&lt; &quot; Drop: &quot; &lt;&lt; f.drop_transmitted    &lt;&lt; &quot; Fifo: &quot; 
  &lt;&lt; f.fifo_transmitted  &lt;&lt; &quot; Coll: &quot; &lt;&lt; f.colls_transmitted   &lt;&lt; &quot; Carrier: &quot; &lt;&lt; f.carrier_transmitted &lt;&lt; &quot; Compressed: &quot; &lt;&lt; f.compressed_transmitted; 
}
</code></pre>
<p>Muss ich mir jetzt für jeden Operator etwas schreiben? oder kann man das irgendwie umgehen? Hier noch die Fehlermeldung:</p>
<pre><code>131:12: Fehler: keine Übereinstimmung für »operator&lt;« in »((exsystem::SYSInfo*)this)-&gt;exsystem::SYSInfo::dev &lt; 0«
</code></pre>
<p>Ihr dürft mich nun in der Luft zerreißen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308212/vector-durchlaufen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 23:51:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308212.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Sep 2012 08:42:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 08:42:14 GMT]]></title><description><![CDATA[<p>Guten Morgen.<br />
Ich wollte meinen vector durchlaufen der so ausieht:</p>
<pre><code>lo:  167027     548    0    0    0     0          0         0   167027     548    0    0    0     0       0          0
 wlan0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth0: 39072289   41342    0    0    0     0          0      3348  4363113   28697    0    0    0     0       0          0
</code></pre>
<p>d.h. von lo gibt es einmal die ganzen Daten dann von wlan0 und so weiter. Nun kann es aber auch sein das es nur 2 gibt oder auch 4. D.h. ich hab mir eine Funktion nextNet gebaut allerdings klappt die nicht so ganz.</p>
<pre><code class="language-cpp">bool SYSInfo::nextNet(){
  if(dev.empty()) return false;
  if(dev &lt; 0){
    dev=dev.at(0);
    read_dev();
    return true;
  }
  std::vector&lt;face&gt;::iterator it;
  int i = 0;
  for ( it=dev.begin(); it &lt; dev.end(); it++ ) {
    if(*it==dev &amp;&amp; i + 1 &lt; (int)dev.size()){
      dev=dev.at(i + 1);
      read_dev;
      return true;
    }
    i++;
  }
  return false;
}
</code></pre>
<p>-wenn dev leer = false<br />
-wenn dev kleiner als 0<br />
-dev auf die postion N ( in diesem fall 0)<br />
-read_dev funktion<br />
-gebe true zurück</p>
<p>-(it auf begin setzen / wenn it kleiner ist als dev.end / it soll um einen erhöht werden<br />
-wenn it auf dev zeigt (false) i + 1 (true) kleiner als anzahl der elemente in dev<br />
-setze dev auf position N (i + 1)<br />
- read_dev funktion<br />
-gebe true zurück</p>
<p>-i um 1 erhöhen</p>
<p>(hab mir gedacht so seht ihr ob ich es verstanden hab oder ob ich da was falsch eingebaut hab.)</p>
<p>so sieht mein vector aus:</p>
<pre><code class="language-cpp">struct face{ 
    std::string name; 
    unsigned int bytes_received; 
    unsigned int packets_received; 
    unsigned int errs_received; 
    unsigned int drop_received; 
    unsigned int fifo_received; 
    unsigned int frame_received; 
    unsigned int compressed_received; 
    unsigned int multicast_received; 
    unsigned int bytes_transmitted; 
    unsigned int packets_transmitted; 
    unsigned int errs_transmitted; 
    unsigned int drop_transmitted; 
    unsigned int fifo_transmitted; 
    unsigned int colls_transmitted; 
    unsigned int carrier_transmitted; 
    unsigned int compressed_transmitted; 
  };

class ....

....

  private:
    std::vector&lt;face&gt; dev;
</code></pre>
<p>read_dev:</p>
<pre><code class="language-cpp">void SYSInfo::read_dev(){ 
  std::ifstream file(&quot;/proc/net/dev&quot;); 
  file &gt;&gt; skip_line; // Überspringe erste Zeile. 
  file &gt;&gt; skip_line; // Überspringe zweite Zeile. 
  for(face f; file&gt;&gt;f; dev.push_back(f)); 
}
</code></pre>
<p>Der Fehler ist das er meine Operatoren nicht anerkennt. Ich denke das passiert durch meine Operatoren überladung oben:</p>
<pre><code class="language-cpp">std::istream&amp; skip_line(std::istream&amp; in){ 
  return in.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(),'\n'); 
} 

std::istream&amp; operator&gt;&gt;(std::istream&amp; in, face&amp; f){ 
  return in 
  &gt;&gt; f.name 
  &gt;&gt; f.bytes_received &gt;&gt; f.packets_received &gt;&gt; f.errs_received &gt;&gt; f.drop_received &gt;&gt; f.fifo_received &gt;&gt; f.frame_received &gt;&gt; f.compressed_received &gt;&gt; f. multicast_received         &gt;&gt; f.bytes_transmitted &gt;&gt; f.packets_transmitted &gt;&gt; f.errs_transmitted &gt;&gt; f.drop_transmitted &gt;&gt; f.fifo_transmitted &gt;&gt; f.colls_transmitted &gt;&gt; f.carrier_transmitted &gt;&gt; f.compressed_transmitted; 
} 

std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const face&amp; f){ 
  return out 
  &lt;&lt; f.name &lt;&lt; &quot;Bytes: &quot; 
  &lt;&lt; f.bytes_received    &lt;&lt; &quot; Packets: &quot; &lt;&lt; f.packets_received    &lt;&lt; &quot; Errs: &quot; &lt;&lt; f.errs_received       &lt;&lt; &quot; Drop: &quot; &lt;&lt; f.drop_received       &lt;&lt; &quot; Fifo: &quot; 
  &lt;&lt; f.fifo_received     &lt;&lt; &quot; Frame: &quot; &lt;&lt; f.frame_received      &lt;&lt; &quot; Compressed: &quot; &lt;&lt; f.compressed_received &lt;&lt; &quot; Multicast: &quot; &lt;&lt; f. multicast_received &lt;&lt; &quot; Bytes: &quot; 
  &lt;&lt; f.bytes_transmitted &lt;&lt; &quot; Packets: &quot; &lt;&lt; f.packets_transmitted &lt;&lt; &quot; Errs: &quot; &lt;&lt; f.errs_transmitted    &lt;&lt; &quot; Drop: &quot; &lt;&lt; f.drop_transmitted    &lt;&lt; &quot; Fifo: &quot; 
  &lt;&lt; f.fifo_transmitted  &lt;&lt; &quot; Coll: &quot; &lt;&lt; f.colls_transmitted   &lt;&lt; &quot; Carrier: &quot; &lt;&lt; f.carrier_transmitted &lt;&lt; &quot; Compressed: &quot; &lt;&lt; f.compressed_transmitted; 
}
</code></pre>
<p>Muss ich mir jetzt für jeden Operator etwas schreiben? oder kann man das irgendwie umgehen? Hier noch die Fehlermeldung:</p>
<pre><code>131:12: Fehler: keine Übereinstimmung für »operator&lt;« in »((exsystem::SYSInfo*)this)-&gt;exsystem::SYSInfo::dev &lt; 0«
</code></pre>
<p>Ihr dürft mich nun in der Luft zerreißen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252212</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 08:42:14 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 08:48:51 GMT]]></title><description><![CDATA[<p>Dein Compiler kann mit</p>
<pre><code class="language-cpp">dev &lt; 0
</code></pre>
<p>nichts anfangen. Was soll das denn tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252218</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 18 Sep 2012 08:48:51 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:01:31 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Dein Compiler kann mit</p>
<pre><code class="language-cpp">dev &lt; 0
</code></pre>
<p>nichts anfangen. Was soll das denn tun?</p>
</blockquote>
<p>Wenn dev kleiner als 0 ist soll er dev von vorne lesen. Da es doch dev[0],dev[1] und dev[2] (beliebig mehr oder auch weniger) gibt. D.h. in diesem Beispiel sollte er dann die Daten von lo ausgeben.<br />
EDIT: So hab ich zumindest gedacht das er es tut.<br />
EDIT2: Er kommt btw mit keinem Operator klar in der Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252226</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:01:31 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:03:32 GMT]]></title><description><![CDATA[<p>Enno schrieb:</p>
<blockquote>
<p>Wenn dev kleiner als 0</p>
</blockquote>
<p>dev ist ein vector. Keine Zahl.</p>
<p>Vector kann genausowenig wie der string in deiner anderen Frage gleich, kleiner oder größer als 0 sein. Tu dir und uns den Gefallen und lies dir im Einsteigerbuch deiner Wahl nochmal den Teil zu Datentypen durch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252228</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:03:32 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:02:42 GMT]]></title><description><![CDATA[<p>Enno schrieb:</p>
<blockquote>
<p>Wenn dev kleiner als 0 ist soll er dev von vorne lesen.</p>
</blockquote>
<p>Wie kann ein Vektor kleiner als eine Zahl sein? Meinst du, dass die Länge kleiner als 0 sein soll? Das würde man <code>dev.size() &lt; 0</code> schreiben, aber das ist Blödsinn, weil eine negative Länge erstens keinen Sinn ergibt und zweitens size hier sowieso einen unsigned-Typ zurückgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252229</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:02:42 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:07:51 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Wie kann ein Vektor kleiner als eine Zahl sein? Meinst du, dass die Länge kleiner als 0 sein soll? Das würde man <code>dev.size() &lt; 0</code> schreiben, aber das ist Blödsinn, weil eine negative Länge erstens keinen Sinn ergibt und zweitens size hier sowieso einen unsigned-Typ zurückgibt.</p>
</blockquote>
<p>Ich wollte prüfen ob ich am Anfang des vectors bin. D.h. ich könnte das vllcht mit front machen?</p>
<p>EDIT: Mhm ... mist das dann auch wieder Quark da ich dann niemals bis zum for komme oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252231</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:07:51 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:11:28 GMT]]></title><description><![CDATA[<p>Lies dir bitte erstmal die Grundlagen zum Thema &quot;vector&quot; durch. Bspw. <a href="http://www.cplusplus.com/reference/stl/vector/" rel="nofollow">http://www.cplusplus.com/reference/stl/vector/</a>.</p>
<p>Und komm jetzt bitte nicht wieder mit der Ausrede, du seist auf Arbeit. Wenn du die Zeit hast, stundenlang deine Anfängerprobleme hier im Forum zu diskutieren, hast du auch die Zeit, dir kurz das entsprechende Grundlagenwissen anzueignen. Geht vermutlich sogar wesentlich schneller.</p>
<p>Sorry, wenn das jetz ein wenig direkt war, aber so langsam gehen mir deine Fragen und Probleme ziemlich auf die Nerven.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252233</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:11:28 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:12:53 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>Lies dir bitte erstmal die Grundlagen zum Thema &quot;vector&quot; durch. Bspw. <a href="http://www.cplusplus.com/reference/stl/vector/" rel="nofollow">http://www.cplusplus.com/reference/stl/vector/</a>.</p>
<p>Und komm jetzt bitte nicht wieder mit der Ausrede, du seist auf Arbeit. Wenn du die Zeit hast, stundenlang deine Anfängerprobleme hier im Forum zu diskutieren, hast du auch die Zeit, dir kurz das entsprechende Grundlagenwissen anzueignen. Geht vermutlich sogar wesentlich schneller.</p>
<p>Sorry, wenn das jetz ein wenig direkt war, aber so langsam gehen mir deine Fragen und Probleme ziemlich auf die Nerven.</p>
</blockquote>
<p>Link bin ich schon lange drauf ... und ja see ya!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252234</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:12:53 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:17:06 GMT]]></title><description><![CDATA[<p>Was soll nextNet genau erreichen? Die Funktion macht so wie du sie konzipiert hast keinen wirklichen Sinn...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252235</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:17:06 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:20:02 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Was soll nextNet genau erreichen? Die Funktion macht so wie du sie konzipiert hast keinen wirklichen Sinn...</p>
</blockquote>
<p>Ich wollte eine Funktion mit der ich alle werte aus dev ausgeben kann ohne das ich wie hier:</p>
<pre><code class="language-cpp">unsigned int SYSInfo::getBytesr(){ 
  return dev[0].bytes_received;   
}
</code></pre>
<p>die Zahl hinter dev ändern muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252237</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:20:02 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:27:00 GMT]]></title><description><![CDATA[<p>Enno schrieb:</p>
<blockquote>
<p>Ich wollte eine Funktion mit der ich alle werte aus dev ausgeben kann ohne das ich wie hier: [...] die Zahl hinter dev ändern muss.</p>
</blockquote>
<p>&quot;Die Zahl hinter dev&quot; nennt sich Array-Index. Als Index kannst du statt der Konstanten auch eine Variable benutzen (=&gt; Grundlagenbuch), und um die Variable hochzuzählen typischerweise eine Schleife (=&gt; Grundlagenbuch):</p>
<pre><code class="language-cpp">//alle Werte aus dev ausgeben:
for (unsigned i = 0; i &lt; dev.size(); ++i)
{
  cout &lt;&lt; dev[i] &lt;&lt; ' ';
}
</code></pre>
<p>Mal davon abgesehen, dass dein nextNet garnichts ausgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252238</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:27:00 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:46:06 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Enno schrieb:</p>
<blockquote>
<p>Ich wollte eine Funktion mit der ich alle werte aus dev ausgeben kann ohne das ich wie hier: [...] die Zahl hinter dev ändern muss.</p>
</blockquote>
<p>&quot;Die Zahl hinter dev&quot; nennt sich Array-Index. Als Index kannst du statt der Konstanten auch eine Variable benutzen (=&gt; Grundlagenbuch), und um die Variable hochzuzählen typischerweise eine Schleife (=&gt; Grundlagenbuch):</p>
<pre><code class="language-cpp">//alle Werte aus dev ausgeben:
for (unsigned i = 0; i &lt; dev.size(); ++i)
{
  cout &lt;&lt; dev[i] &lt;&lt; ' ';
}
</code></pre>
<p>Mal davon abgesehen, dass dein nextNet garnichts ausgibt.</p>
</blockquote>
<p>wäre es mal so leicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich muss auf jedes Element einzelnt mit einer getFunktion zugreifen können meine next Funktion soll nun meinen index ändern. Wahrscheinlich der größte müll den ich mal wieder rede.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252245</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:46:06 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:58:16 GMT]]></title><description><![CDATA[<p>meinst du sowas:</p>
<pre><code class="language-cpp">for(std::vector&lt;face&gt;::const_iterator it = dev.begin(); it != dev.end(); ++it)
{
  it-&gt;getXYZ();
  it-&gt;getName();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2252246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252246</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:58:16 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 09:58:20 GMT]]></title><description><![CDATA[<p>Enno schrieb:</p>
<blockquote>
<p>wäre es mal so leicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Das ist das, was du beschrieben hast. Leider wird man aus deinem ersten Post nicht so recht schlau. Was willst du <em>erreichen</em>?</p>
<blockquote>
<p>Ich muss auf jedes Element einzelnt mit einer getFunktion zugreifen können meine next Funktion soll nun meinen index ändern.</p>
</blockquote>
<p>Dann greif doch innerhalb einer Schleife mit dem Getter auf die Elemente zu - den index abzuändern übernimmt der Schleifenkopf doch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252248</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Sep 2012 09:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 10:10:51 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<pre><code class="language-cpp">//alle Werte aus dev ausgeben:
for (unsigned i = 0; i &lt; dev.size(); ++i)
{
  cout &lt;&lt; dev[i] &lt;&lt; ' ';
}
</code></pre>
</blockquote>
<p>Das Problem für mich hier ist, dass die schleife alle teile ausgibt und nicht nur den ersten &quot;block&quot; aus [0](oder halt [1] ...).<br />
Von der theorie noch mal eben her:<br />
setFunktion die den gewünschten Index setzt, nextFunktion die in den Index geht und getFunktion die den teil ausgibt.</p>
<p>Würde das so gehen ?</p>
<p>daddy_felix schrieb:</p>
<blockquote>
<p>meinst du sowas:</p>
<pre><code class="language-cpp">for(std::vector&lt;face&gt;::const_iterator it = dev.begin(); it != dev.end(); ++it)
{
  it-&gt;getXYZ();
  it-&gt;getName();
}
</code></pre>
</blockquote>
<p>Wäre das nicht nur eine Schleife die alle getFunktionen bestückt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252250</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 10:10:51 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 10:18:05 GMT]]></title><description><![CDATA[<p>Enno schrieb:</p>
<blockquote>
<p>Von der theorie noch mal eben her:<br />
setFunktion die den gewünschten Index setzt, nextFunktion die in den Index geht und getFunktion die den teil ausgibt.</p>
<p>Würde das so gehen ?</p>
</blockquote>
<p>Du willst doch über alle Elemente laufen? Zumindest hast du das vorhin noch geschrieben. Dann musst du keinen Index setzen.</p>
<p>daddy_felix schrieb:</p>
<blockquote>
<p>meinst du sowas:</p>
<pre><code class="language-cpp">for(std::vector&lt;face&gt;::const_iterator it = dev.begin(); it != dev.end(); ++it)
{
  it-&gt;getXYZ();
  it-&gt;getName();
}
</code></pre>
</blockquote>
<p>Wäre das nicht nur eine Schleife die alle getFunktionen bestückt?[/quote]</p>
<p>das ist ein <strong>BEISPIEL</strong>. wie du den vector komplett durchläufst. Wenn du nur eine bestimmtes Eigenschft benötigst, dann greifst du eben nur auf diese zu:</p>
<pre><code class="language-cpp">cout &lt;&lt; it-&gt;getVeryImportantWhatever() &lt;&lt; &quot; &quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2252251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252251</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 18 Sep 2012 10:18:05 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 10:21:16 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>Du willst doch über alle Elemente laufen? Zumindest hast du das vorhin noch geschrieben. Dann musst du keinen Index setzen.</p>
<p>meinst du sowas:</p>
<pre><code class="language-cpp">for(std::vector&lt;face&gt;::const_iterator it = dev.begin(); it != dev.end(); ++it)
{
  it-&gt;getXYZ();
  it-&gt;getName();
}
</code></pre>
</blockquote>
<p>Wäre das nicht nur eine Schleife die alle getFunktionen bestückt?[/quote]</p>
<p>das ist ein <strong>BEISPIEL</strong>. wie du den vector komplett durchläufst. Wenn du nur ein bestimmtes Elemen benötigst, dann greifst du eben nur auf dieses Element zu:</p>
<pre><code class="language-cpp">cout &lt;&lt; it-&gt;getVeryImportantElement() &lt;&lt; &quot; &quot;;
</code></pre>
<p>[/quote]</p>
<p>Ja weiß ich also &quot;bestückt&quot; die schleife die getVeryImportantElemnt() mit einem wert.</p>
<p>Einfacher gehtz ja so:</p>
<pre><code class="language-cpp">unsigned int SYSInfo::getFifot(){ 
  return dev[0].fifo_transmitted;   
}
</code></pre>
<p>So bekomm ich die ja nun einzelnt. Ich will nun aber den ganzen &quot;block&quot; von index [n].</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252253</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 10:21:16 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 10:21:16 GMT]]></title><description><![CDATA[<p>Enno schrieb:</p>
<blockquote>
<p>Das Problem für mich hier ist, dass die schleife alle teile ausgibt und nicht nur den ersten &quot;block&quot; aus [0](oder halt [1] ...).</p>
</blockquote>
<p>Was verstehst du unter dem ersten Block? Meinst du sowas:</p>
<pre><code class="language-cpp">for( unsigne i = 0; i &lt; dev.size(); ++i)
{
  cout &lt;&lt; dev[i].bytes_received &lt;&lt; '\n';
}
</code></pre>
<p>pumuckl schrieb:</p>
<blockquote>
<p><strong>Was willst du erreichen?</strong></p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2252254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252254</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Sep 2012 10:21:16 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 10:23:08 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Enno schrieb:</p>
<blockquote>
<p>Das Problem für mich hier ist, dass die schleife alle teile ausgibt und nicht nur den ersten &quot;block&quot; aus [0](oder halt [1] ...).</p>
</blockquote>
<p>Was verstehst du unter dem ersten Block? Meinst du sowas:</p>
<pre><code class="language-cpp">for( unsigne i = 0; i &lt; dev.size(); ++i)
{
  cout &lt;&lt; dev[i].bytes_received &lt;&lt; '\n';
}
</code></pre>
<p>pumuckl schrieb:</p>
<blockquote>
<p><strong>Was willst du erreichen?</strong></p>
</blockquote>
</blockquote>
<p>In diesem fall der vector:</p>
<pre><code>lo:  167027     548    0    0    0     0          0         0   167027     548    0    0    0     0       0          0
 wlan0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth0: 39072289   41342    0    0    0     0          0      3348  4363113   28697    0    0    0     0       0          0
</code></pre>
<p>Meine vorstellung von &quot;block&quot; oder auch halt dem index[0] in diesem fall:</p>
<pre><code>lo:  167027     548    0    0    0     0          0         0   167027     548    0    0    0     0       0          0
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2252256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252256</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 10:23:08 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 10:30:33 GMT]]></title><description><![CDATA[<p>Wir haben dir nun gezeigt, wie du über alle Elemente des vectors iterierst. Innerhalb des Schleifenrumpfes kannst du nun auf eine Instanz von &quot;face&quot; zugreifen. Dort holst du dir die Informationen, die du ausgeben willst, und gibst diese aus. Welche Getter du dafür konkret aufrufen musst, können wir dir nicht sagen.</p>
<p>Achso, du willst also anscheinend alle Elemente von &quot;face&quot; ausgeben. In diesem Fall machst du entweder</p>
<pre><code class="language-cpp">cout &lt;&lt; it-&gt;getName() &lt;&lt; &quot; &quot; &lt;&lt; it-&gt;getPacketsReceived() &lt;&lt; &quot; &quot; &lt;&lt; ...
</code></pre>
<p>oder, falls du dir noch mehr fortgeschrittenen Techniken ansehen willst: du kannst den Ausgabeoperator &lt;&lt; für deinen Typ &quot;face&quot; überladen (-&gt; Grundlagenbuch).</p>
<p>dann kannst du das einfach so schreiben:</p>
<pre><code class="language-cpp">cout &lt;&lt; *it;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2252259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252259</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 18 Sep 2012 10:30:33 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 10:29:19 GMT]]></title><description><![CDATA[<p>Enno schrieb:</p>
<blockquote>
<p>In diesem fall der vector:</p>
<pre><code>lo:  167027     548    0    0    0     0          0         0   167027     548    0    0    0     0       0          0
 wlan0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth0: 39072289   41342    0    0    0     0          0      3348  4363113   28697    0    0    0     0       0          0
</code></pre>
<p>Meine vorstellung von &quot;block&quot; oder auch halt dem index[0] in diesem fall:</p>
<pre><code>lo:  167027     548    0    0    0     0          0         0   167027     548    0    0    0     0       0          0
</code></pre>
</blockquote>
<p>Du willst also einfach nur den ersten Eintrag im vector ausgeben? Falls nicht, sag uns doch <strong>bitte</strong>, was du erreichen willst!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252261</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Sep 2012 10:29:19 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 10:33:09 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Du willst also einfach nur den ersten Eintrag im vector ausgeben? Falls nicht, sag uns doch <strong>bitte</strong>, was du erreichen willst!</p>
</blockquote>
<p>Jain ich will eine Funktion die da durchlaufen kann und den entsprechenden index den ich eingebe dann auch ausgibt. Versteht man das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252263</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 10:33:09 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 10:36:34 GMT]]></title><description><![CDATA[<p>Enno schrieb:</p>
<blockquote>
<p>Jain ich will eine Funktion die da durchlaufen kann und den entsprechenden index den ich eingebe dann auch ausgibt. Versteht man das?</p>
</blockquote>
<p>Nein. Du willst genau <strong>einen</strong> Index eingeben und die Werte von dem Element an diesem Index ausgeben?</p>
<pre><code class="language-cpp">void PrintElement(size_t index)
{
  assert(index &lt; dev.size());
  cout &lt;&lt; dev[index].getName() &lt;&lt; &quot; &quot; &lt;&lt; dev[index].getPacketsLoss() &lt;&lt; &quot; &quot; &lt;&lt; ...;
}
</code></pre>
<p>so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252264</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 18 Sep 2012 10:36:34 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 10:54:46 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>Enno schrieb:</p>
<blockquote>
<p>Jain ich will eine Funktion die da durchlaufen kann und den entsprechenden index den ich eingebe dann auch ausgibt. Versteht man das?</p>
</blockquote>
<p>Nein. Du willst genau <strong>einen</strong> Index eingeben und die Werte von dem Element an diesem Index ausgeben?</p>
<pre><code class="language-cpp">void PrintElement(size_t index)
{
  assert(index &lt; dev.size());
  cout &lt;&lt; dev[index].getName() &lt;&lt; &quot; &quot; &lt;&lt; dev[index].getPacketsLoss() &lt;&lt; &quot; &quot; &lt;&lt; ...;
}
</code></pre>
<p>so?</p>
</blockquote>
<p>Mhm ... eher dachte ich an sowas:</p>
<pre><code class="language-cpp">unsigned int SYSInfo::setIndex(){
  std::cout &lt;&lt; &quot;Bitte Index eingeben: &quot; &lt;&lt; std::endl;
  std::cin &gt;&gt; i;
  return i;
}

void SYSInfo::nextNet(){
  for(i; i &lt; dev.size(); i++){
    std::cout &lt;&lt; dev[i] &lt;&lt; '\n';    
  }
}
</code></pre>
<p>Nur gibt er jetzt alles ab dem eingegebenen wert aus und nicht nur den einen Index.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252273</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 10:54:46 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 10:57:37 GMT]]></title><description><![CDATA[<p>irgendwie kommst du mit deinen Indizes durcheinander. Gibt bitte mal ein <strong>konkretes Beispiel</strong>, also bei welcher Eingabe und welchen Datensatz was genau ausgegeben werden soll.</p>
<p>Es gilt:</p>
<p>index 0:</p>
<pre><code>lo:  167027     548    0    0    0     0          0         0   167027     548    0    0    0     0       0          0
</code></pre>
<p>index 1:</p>
<pre><code>wlan0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
</code></pre>
<p>index 2:</p>
<pre><code>eth0: 39072289   41342    0    0    0     0          0      3348  4363113   28697    0    0    0     0       0          0
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2252276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252276</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 18 Sep 2012 10:57:37 GMT</pubDate></item><item><title><![CDATA[Reply to vector durchlaufen on Tue, 18 Sep 2012 11:01:59 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>irgendwie kommst du mit deinen Indizes durcheinander. Gibt bitte mal ein <strong>konkretes Beispiel</strong>, also bei welcher Eingabe und welchen Datensatz was genau ausgegeben werden soll.</p>
<p>Es gilt:</p>
<p>index 0:</p>
<pre><code>lo:  167027     548    0    0    0     0          0         0   167027     548    0    0    0     0       0          0
</code></pre>
<p>index 1:</p>
<pre><code>wlan0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
</code></pre>
<p>index 2:</p>
<pre><code>eth0: 39072289   41342    0    0    0     0          0      3348  4363113   28697    0    0    0     0       0          0
</code></pre>
</blockquote>
<p>Bei meinem Code kommt für i = 1:</p>
<pre><code>wlan0:Bytes: 0 Packets: 0 Errs: 0 Drop: 0 Fifo: 0 Frame: 0 Compressed: 0 Multicast: 0 Bytes: 0 Packets: 0 Errs: 0 Drop: 0 Fifo: 0 Coll: 0 Carrier: 0 Compressed: 0
eth0:Bytes: 51174195 Packets: 72809 Errs: 0 Drop: 0 Fifo: 0 Frame: 0 Compressed: 0 Multicast: 9927 Bytes: 7798016 Packets: 48352 Errs: 0 Drop: 0 Fifo: 0 Coll: 0 Carrier: 0 Compressed: 0
</code></pre>
<p>Es soll aber nur:</p>
<pre><code>wlan0:Bytes: 0 Packets: 0 Errs: 0 Drop: 0 Fifo: 0 Frame: 0 Compressed: 0 Multicast: 0 Bytes: 0 Packets: 0 Errs: 0 Drop: 0 Fifo: 0 Coll: 0 Carrier: 0 Compressed: 0
</code></pre>
<p>Das heißt ich muss dem noch irgendwie sagen das dann stop ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252277</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Tue, 18 Sep 2012 11:01:59 GMT</pubDate></item></channel></rss>