我想了解如何vector
在 C++ 中实现。以前有一个问题问过这个,所以我看了一下,我有一个小问题。假设链接问题中的实现是正确的,让我们看一下这段代码:
int main(){
Vector<int> test2 = test_Vector();
cout << test2[0] << endl;
return 0;
}
// below is NOT the STL vector object, but the one in the linked question,
// in which the asker tries to implement STL vector himself/herself
Vector<int> test_Vector(){
Vector<int> test;
test.push_back(5);
return test;
}
据我了解,test
Vector
对象是在本地创建的,因此当test_Vector
方法返回时,本地对象超出范围,从而调用析构函数并 -delete
动态数组。由于代码实际上有效并且打印了 5,我想我错了。正确的解释是什么?