Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Zugriff Strukturvariablen/Instanzvariablen in vector

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.01.2010, 20:02 Uhr
bilbor



habe flg. Struktur:
header:

C++:
struct Messdaten
{
   double temperatur;
   double pHWert;
   double tsGehalt;
   double fuellstand;

   Messdaten();
};


cpp-Datei:

C++:
#include "Messdaten.h"
Messdaten::Messdaten() : temperatur(0.0),
                        pHWert(0.0),
                        tsGehalt(0.0),
                        fuellstand(0.0)
{ }    



ich möchte nun einen vector anlegen und auf die Struktur oder Klasse zugreifen.
also:
C++:
vector<Messdaten>batch;

aber so komm ich ja nicht an die Strukturvariablen.

Hintergrund ist, dass ich Messdaten von verschiedenen Sensoren aufnehmen möchte. Diese sollen zusammen mit der Zeit in dem Vektor abgelegt werden.

Dieser Post wurde am 17.01.2010 um 20:03 Uhr von bilbor editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.01.2010, 07:48 Uhr
ao

(Operator)


Vielleicht so:

C++:
vector<Messdaten> batch (10); // Platz für 10 Elemente

batch[0].temperatur = 15.0;

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.01.2010, 10:10 Uhr
~bilbor
Gast


ok das ist klar. Also kann ich 10 Elemente, hier die Instanzvariablen Temperatur usw aufnehmen. Zusätzlich sollen aber auch die einzelnen Messwerte abgelegt werden also zb 100 Temperaturen. Wie mach ich das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.01.2010, 12:47 Uhr
ao

(Operator)


???

Bitte verständliche Fragen formulieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.01.2010, 14:31 Uhr
~bilbor
Gast


sind die 10 Elemente jetzt für 10 unterschiedliche Temperaturen oder für die Messdaten wie Temeratur, pHWert, tsGehalt, fuellstand usw. ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.01.2010, 14:52 Uhr
ao

(Operator)


Das sind 10 Strukturen vom Typ Messdaten. Also 10 Blöcke, und jeder enthält eine Temperatur, einen pH-Wert, einen ts-Gehalt und einen Füllstand.

Kann es sein, dass du vom Programmieren noch keinen Schimmer hast? Wenn ja, dann machst du gerade den dritten Schritt vor den ersten beiden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
18.01.2010, 14:56 Uhr
Hans
Library Walker
(Operator)


Hi,

in einer Struktur kannst du immer alle Daten unterbringen, die darin definiert sind. In diesem Fall also 10 Temperaturen, 10 pHWerte, 10 mal tsGehalt und 10 Füllstände.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
18.02.2010, 21:03 Uhr
~3f2fe54r3
Gast


auch wenn das nen monat her ist ...

nimmt einen einfachen konstruktor und befüllt mit jedem neuen datensatz den vector über push_back();

und für eine struktur zum bloßem daten ablegen würde ich nicht extra eine cpp datei anlegen.


C++:
struct Messdaten
{
   Messdaten(double temperatur, double pHWert, double tsGehalt, double fuellstand)
   {
      this->temperatur = temperatur;
      this->pHWert      = pHWert;
      this->tsGehalt     = tsGehalt;
      this->fuellstand   = fuellstand;
   }

   Messdaten()
   {
   }

   double temperatur;
   double pHWert;
   double tsGehalt;
   double fuellstand;

};




dann


C++:
vector<Messdaten>batch;
batch.push_back( Messdaten(24.0 , 7.5 , 2.5 , 22.0 ) );



batch.size() kann man die anzahl der elemente abfragen und dann mit for durchgehen. aber daran denken das die indexes bei 0 beginnen. löschen mit clear(), aber hier dran denken das der speicher erst mir reserve(0) freigegeben wird. der leere konstruktor wird dafür benötigt da reserve jeweils instanzen in der menge angibt auch wenn 0 elemente angelegt werden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
18.02.2010, 21:56 Uhr
ao

(Operator)


~3f2fe54r3:
Es ist schön, dass du helfen willst, aber mach dir bitte die kleine Mühe, verständliche Erklärungssätze zu formulieren. Deine Leser danken es dir.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: