Vector Initialisation in C++

前端 未结 2 1225
无人及你
无人及你 2021-01-25 20:26

I am using Vectors in my code.

The line that is causing the error is as follows :

vector alt_seq ;
alt_seq = vector(1000);
for(in         


        
相关标签:
2条回答
  • 2021-01-25 20:39

    I can see one problem; when you declare 1000 vector objects and then do a push_back you're adding to the end of the vector, i.e. the objects that you're trying to add are at 1001, 1002.... etc. If declaring 1000 vector objects doesn't give you a runtime error, I would first see what's the default definition (since the first 1000 node objects have default values), since that's not error out and compare against the actual data I'm trying to load. Hope this helps.

    0 讨论(0)
  • 2021-01-25 20:42

    Your Node class has a pointer member of type CombinedFragment* called cfrag. This creates dangling references if you don't defined your own copy ctor and assignment operators. Further, a proper dtor is required to prevent leaks if Node is responsible for allocating/deallocating cfrag. If you don't want to deep-copy CombinedFragment you can use a shared_ptr.

    Also, the default ctor for Node probably doesn't even need to be there (it leaves cfrag to an uninitialized state).

    0 讨论(0)
提交回复
热议问题