vector< int > vect;
int *int_ptr = new int(10);
vect.push_back( *int_ptr );
我知道每个“new”都需要在某个时候跟着一个“delete”,但是clear()方法是否可以清除这些内存?
那么用这种方法做同样的事情呢:
vector< int > vect;
int int_var = 10;
vect.push_back( int_var );
据我了解,clear() 调用变量的析构函数,但是在这个例子中,两个 vect.push_back() 方法都是将一个对象推入向量,而不是一个指针。那么第一个例子使用 int 指针需要使用除 clear() 之外的其他方式来清理内存吗?
clear()
不会实际释放任何内存;向量将保留容量以防需要在以后再次增长。 - Fred Larson