Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » struct in einer queue

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
13.06.2006, 08:29 Uhr
Knief



Moin!

Meines Wissens sollte man doch in eine queue alles reinpflanzen können was man will (ist ja der sinn der Template library). Mache ich aber folgendes, scheints nicht zu funktionieren.


C++:
// readMIDI.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
#include "stdafx.h"
#include <queue>
using namespace std;

struct noteEvent{
    float dT;
    int channel;
    int note;
    bool on_off;
};

int _tmain(int argc, _TCHAR* argv[]) {

    queue<noteEvent> noteEventQueue;
    
    noteEvent n1;
    n1.channel=01;
    n1.dT=234523.0;
    n1.note=102;
    n1.on_off=true;

    noteEvent n2;
    n1.channel=02;
    n1.dT=23452.0;
    n1.note=102;
    n1.on_off=true;

    noteEvent n3;
    n1.channel=03;
    n1.dT=24345.0;
    n1.note=12;
    n1.on_off=false;

    noteEventQueue.push(n1);
    noteEventQueue.push(n2);
    noteEventQueue.push(n3);

    cout << "size: "<< noteEventQueue.size() << endl << endl;

    cout << noteEventQueue.front().channel << endl;
    noteEventQueue.pop();
    cout << "size: " << noteEventQueue.size() << endl << endl;

    cout << noteEventQueue.front().channel << endl;
    noteEventQueue.pop();
    cout << "size: " << noteEventQueue.size() << endl << endl;

    cout << noteEventQueue.front().channel << endl;
    noteEventQueue.pop();
    cout << "size: " << noteEventQueue.size() << endl << endl;



Die Ausgabe sieht dann so aus:


Code:
size: 3

3
size: 2

-858993460
size: 1

-858993460
size: 0



Sollte doch stimmen, oder? Oder gehts wirklich nicht mit einem struct?
Probiere ich nämlich dasselbe mit einer queue<char>, funktionierts problemlos..

Dieser Post wurde am 13.06.2006 um 08:29 Uhr von Knief editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.06.2006, 09:26 Uhr
ao

(Operator)



C++:
    noteEvent n2;    // n2 deklarieren
    n1.channel=02;  // mit n1 arbeiten --> Copy-Paste-Fehler
    noteEventQueue.push(n2); // n2 un-initialisiert abspeichern --> aua!

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.06.2006, 10:32 Uhr
Knief



aua!!!

das ist mal wieder typisch für mich...
naja, dankeschön!

by the way: HOPP SCHWIZ!
 
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: