c++利用vector时,它是有数据头和实际存储空间二部分的,那么它是不是与opencv的Mat类差不多呢,vector *f;与vector f,然后在f.resize(100)或者(*f).resize(100)这二种方法在内存的管理上是不是相差不大呢?
不知道你这个问题是否已经解决, 如果还没有解决的话:vector
管理一片动态内存。它通过构造函数在堆上创建真正用于储存数据的对象并通过析构函数在堆上销毁储存数据的对象。
//testarray 存栈上,元素存堆上
vector<int> testarray;
//testarray 存堆上,元素存堆上
vector<int> *testarray = new vector<int>;
//testarray 存栈上,保存的是int*,元素的指针,所以元素存堆还是栈并不是特别关系,指针存在堆上
vector<int*> testarray;