Vector 将堆栈上最初的对象推到一个向量,对象会丢失吗?
我刚开始使用STL,比如说我有一个兔子类,现在我正在创建一个兔子军队Vector 将堆栈上最初的对象推到一个向量,对象会丢失吗?,vector,stl,stack,heap,Vector,Stl,Stack,Heap,我刚开始使用STL,比如说我有一个兔子类,现在我正在创建一个兔子军队 #include <vector> vector<rabbit> rabbitArmy (numOfRabbits,rabbit()); //Q1: these rabbits are on the heap right? rabbit* rabbitOnHeap = new rabbit(); //Q2: rabbitOnHeap is on the heap right? rabbit r
#include <vector>
vector<rabbit> rabbitArmy (numOfRabbits,rabbit());
//Q1: these rabbits are on the heap right?
rabbit* rabbitOnHeap = new rabbit();
//Q2: rabbitOnHeap is on the heap right?
rabbit rabbitOnStack;
//Q3: this rabbit is on the stack right?
rabbitArmy.push_back(rabbitOnStack);
//Q4: rabbitOnStack will remain stored on the stack?
//And it will be deleted automatically, though it's put in the rabbitArmy now?
std::allocator
进行分配,它使用new
。不管它值多少钱,它通常被称为“免费商店”,而不是heap1new
来分配要放入标准集合中的项目。由于数组中的项将是传递内容的副本,因此通常不需要使用new
来分配它for (i=0; i<10; i++)
rabbitArmy.push_back(rabbit());
(i=0;i)的
for (i=0; i<10; i++)
rabbitArmy.push_back(rabbit());