1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Listen in C++

    • Frage
  • nexus
  • 11. Januar 2006 um 22:42
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • nexus
    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:

  • fren
    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
    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

  • fren
    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
    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
    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
    Punkte
    580
    Beiträge
    91
    • 12. Januar 2006 um 00:27
    • #7

    Sehr gut. jetzt geht es. Danke!

  • nexus
    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?

  • hal
    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.

  • fren
    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
    Punkte
    580
    Beiträge
    91
    • 12. Januar 2006 um 23:32
    • #11

    Aa ja. Hab schon verstanden. Danke euch.

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum