Vector as a class member

后端 未结 4 1307
醉梦人生
醉梦人生 2020-12-15 13:36

Hello I have this question: I would like to have a vector as class member. This is perhaps my question easier for you and I apologize for that.

  • how should I de
4条回答
  •  -上瘾入骨i
    2020-12-15 14:15

    Just use automatic allocation: declare it as a member like this:

    class YourClass
    {
        std::vector myVector;
        // ...
    };
    

    The array gets constructed automatically before any of your constructor is run and is destroyed automatically when your object is deallocated, you don't need to care about it (also, the default copy constructor and assignment operator will handle copying gracefully automatically).

    If, instead, you want to create the array only after a particular condition, you have to resort to a (smart) pointer and dynamic allocation, but IMHO it's quite cumbersome (especially because you then have to get right the "big three" - copy constructor, assignment operator, destructor); you could instead simply allocate the vector with automatic allocation and use a separate flag to mark your array as not initialized, or just check if its size is 0.

提交回复
热议问题