1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Listen in C++

    • Frage
  • nexus
  • 11. Januar 2006 um 22:42
  • Unerledigt
  • nexus
    8
    nexus
    Mitglied
    Punkte
    580
    Beiträge
    91
    • 11. Januar 2006 um 22:42
    • #1

    Hi
    Ich kapiere nicht wieso ich fehler bekomme wenn ich eine liste variable setze?
    Ich mache
    #include <list>
    ...
    list<int> l;

    Gibt es hauptsaechlich ein problem mit listen und c++. ich suche irgendwas im netz ueber listen und finde nicht wie das gehen soll.

    Ah ja. Das fehler ist uebrigens:
    error C2143: syntax error : missing ';' before '<'
    und
    error C2501: 'list' : missing storage-class or type specifiers

    :confused:

    "Socialism is Bolshevism with a shave." 
    -'Detroit Journal'

  • fren
    4
    fren
    Mitglied
    Punkte
    160
    Beiträge
    32
    • 11. Januar 2006 um 23:19
    • #2

    machst du davor ein "using std::list;"? die ganzen stl-klassen sind im namespace std

    die fehlermeldung kommt mir aber komisch vor, kannst du etwas mehr code reinpasten, bzw welchen compiler verwendest du?

  • nexus
    8
    nexus
    Mitglied
    Punkte
    580
    Beiträge
    91
    • 11. Januar 2006 um 23:26
    • #3

    Ich mache diesen "using std::list;" nicht. Wo genau muss ich das machen? Was sind diese stl klassen?

    Ok hier mein ganze header datei.

    #pragma once
    #include <List.h>


    class SLine
    {
    public:
    SLine(void);
    ~SLine(void);

    List<int> l;

    int length;
    int samplePointsNo;

    void addPair(float x, float y);
    void setLength(int length);

    };

    P.S. Ich verwende den standard VS.NET 2003 compiler

    "Socialism is Bolshevism with a shave." 
    -'Detroit Journal'

  • fren
    4
    fren
    Mitglied
    Punkte
    160
    Beiträge
    32
    • 11. Januar 2006 um 23:35
    • #4

    ähm, welche listen verwendest du da? die aus der standard template library (STL) aus dem c++ standard? oder irgendwas microsoft-spezifisches? (wovon ich keine ahnung habe :) ). folgendes sollte kompilieren:

    Code
    #include <list>
    
      using std::list;
     
      class SLine
      {
        public:
           SLine(void);
           ~SLine(void);
    
           list<int> l;
    
           int length;
           int samplePointsNo;
    
           void addPair(float x, float y);
           void setLength(int length);
    
      };
    Alles anzeigen
  • databanker
    1
    databanker
    Mitglied
    Punkte
    5
    Beiträge
    1
    • 11. Januar 2006 um 23:50
    • #5

    Das Problem ist das fehlende "using namespace std;"

    #include <list>

    using namespace std;

    typedef list<int> LISTINT;

    main() {
    list<int> l1;
    LISTINT l2;

    return 0;
    }

  • fren
    4
    fren
    Mitglied
    Punkte
    160
    Beiträge
    32
    • 11. Januar 2006 um 23:56
    • #6

    man muss nicht den ganzen namespace importieren wenn man nur eine liste braucht, mit "using namespace std;" kannst du aber alles aus dem c++ std namespace direkt verwenden, gibt da noch einige wichtige dinge, zb std::string

    und ja, du kannst ein typedef verwenden um der liste einen eigenen namen zu geben (l1 und l2 haben im beispiel den selben typ), in deinem fall würd ich das aber nicht tun, ist eher verwirrend als hilfreich

  • nexus
    8
    nexus
    Mitglied
    Punkte
    580
    Beiträge
    91
    • 12. Januar 2006 um 00:27
    • #7

    Sehr gut. jetzt geht es. Danke!

    "Socialism is Bolshevism with a shave." 
    -'Detroit Journal'

  • nexus
    8
    nexus
    Mitglied
    Punkte
    580
    Beiträge
    91
    • 12. Januar 2006 um 13:26
    • #8

    Noch etwas. Ich wolte jetzt eine liste von float[2][2] arrays machen, also:
    list<float[2][2]> l;
    Aber wenn ich sie benutzen will bekomme ich ein error C2536 error. Etwas ueber allocation von speicher glaube ich. Heist das dass man listen von arrays nicht machen darf?

    "Socialism is Bolshevism with a shave." 
    -'Detroit Journal'

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 12. Januar 2006 um 15:46
    • #9

    da musst du glaub ich dann float* oder float** verwenden.

    Ich pers. verwende immer std::list als kompletten Typ. using produziert nur namespace pollution.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • fren
    4
    fren
    Mitglied
    Punkte
    160
    Beiträge
    32
    • 12. Januar 2006 um 17:55
    • #10

    da brauchst du auf jedenfall float**, und du musst das array wohl mit new anlegen, geht also nicht ganz so einfach

  • nexus
    8
    nexus
    Mitglied
    Punkte
    580
    Beiträge
    91
    • 12. Januar 2006 um 23:32
    • #11

    Aa ja. Hab schon verstanden. Danke euch.

    "Socialism is Bolshevism with a shave." 
    -'Detroit Journal'

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung