小编Des*_*7es的帖子

堆栈与堆 - *向量内的对象是否应该声明为指针?

如果我使用这条线

std:vector<MyObject>* vec = new std::vector<MyObject>(100);
Run Code Online (Sandbox Code Playgroud)
  • 如果我在堆栈中创建 MyObject 并将它们添加到向量中,它们将保留在堆栈中,对吗?
MyObject obj1;
vec->push_back(obj1);
Run Code Online (Sandbox Code Playgroud)
  • 那么,如果它进入堆栈,那么添加到向量中的 MyObject 将在方法结束后消失?向量里面会有什么?垃圾?

  • 我应该用这个代替吗?:

    std:vector<MyObject*>* vec = new std::vector<MyObject*>(100);

如果是这样,那么每个 MyObject 内的对象和基元又如何呢?它们也应该动态创建吗?

谢谢

c++ heap-memory stdvector stack-memory

2
推荐指数
1
解决办法
626
查看次数

标签 统计

c++ ×1

heap-memory ×1

stack-memory ×1

stdvector ×1