Vektor in Klasse wie richtig initialisieren?



  • Ich habe eine Klasse

    class test
    {
    public:
    vector<int> field;
    .
    .
    .
    .
    }
    

    Wie kann ich diesen Vektor nun initialiseren zb Größe 5 Inhalt -1
    vector<int> field(5,-1) funktioniert irgendwie innerhalb der Klasse nicht.
    Muss man in der cppDatei einen Konstruktur erstellen?
    Das habe ich per test::field versucht aber ging auch nicht.
    lg



  • Mit einem aktuellen Compiler

    #include <vector>
    #include <iostream>
    
    struct x
    {
            std::vector<int> v =  std::vector<int>(5,-1);
    };
    
    int main()
    {
            x aX;
            std::cout << "Size: " << aX.v.size() << "\n";
            for( auto n : aX.v ) std::cout << n << ", ";
            std::cout << "\n";
    }
    


  • vector<int> field = vector<int>(5,-1);
    

    Okay so gehts. Danke;)



  • Geht auch per Initialisierungsliste im Kontruktor:

    #include <vector>
    
    class test
    {
       std::vector<int> field;
    
    public:
       test() : 
          field( 5, -1 )
       {
       }   
    };
    

Log in to reply