MyTinySTL
MyTinySTL copied to clipboard
vector& operator=(const vector& rhs);rhs的size大于当前对象的size并且小于等于当前的capacity时,会造成内存泄漏
mystl::vector<int> vector(10);
mystl::vector<int> v(1);
*(int*)(v.begin() + 10) = 200;
v = vector;
std::cout << "v.capaty:" << v.capacity() << " v.size:" << v.size() << " "<< * (int*)(v.begin() + 10);//v的初始容量为16,但是经过赋值构造后,cap_指向了第10个元素的后面,导致后面6个元素内存没有被释放,内存泄露
*(int*)(v.begin() + 10) = 200;
这行怎么看都是错的。
最好先提供一个正确的代码。