vector中取指针需要释放吗零、小序一、先来看一段代码1、代码示例2、这段代码能正常运行吗3、运行现象二、正确的示范
零、小序
vector是C++程序员经常使用的一种序列化容器,可以说C++程序员每天都在使用,vector中可以存放各种类型的数据,使用起来简单方便。vector用来存放指针这不是一个新鲜事,vector释放空间也不是新鲜事,那么从vector中单独取出来一个指针,这个指针使用完需要单独释放空间吗?你知道吗?不知道的来看看,知道的绕道吧。
一、先来看一段代码
1、代码示例
// TestArray2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include
#include
using namespace std;
class Person
{
public:
int age;
};
int main()
{
vector tmpVector;
for (int i=1; iage = i;
tmpVector.emplace_back(pPerson);
}
Person *tmpPerson = tmpVector.at(0);
if (tmpPerson != nullptr)
{
delete tmpPerson;
tmpPerson = nullptr;
}
for (auto iter=tmpVector.begin(); iter!=tmpVector.end(); ++iter)
{
if (*iter != nullptr)
{
delete (*iter);
(*iter) = nullptr;
}
}
// 清空vector数据并释放空间
tmpVector.clear();
vector tmpSwapVector;
tmpSwapVector.swap(tmpVector);
std::cout |