vector 内存位置

1. vector 在函数中定义(vector arr;), 对象是在栈上(&arr 是栈内存地址), 数据在堆上(& arr[0]  是队内存地址)。

2. vector 在函数中new 出(vector* temp = new vector(10,1);), 指针在栈上(&temp), 对象地址在堆上(temp ), 数据在堆上 (数据  (*temp ).at(i);   or  (*temp )[i]; 取址) 。

其中at(i)会做越界检查,耗时多。

总结: vector 的数据总是在堆上的,但对象的地址根据定义的方式不同可能在堆上,也可能在栈上。

你可能感兴趣的:(笔记,vecotr,内存)