如果我有一个像std::set
这样的指向动态对象的指针的容器,那么如何释放其元素?
int main()
{
// new scope
{
int x = 10;
std::set<int*> spi;
spi.insert(new int(1));// elem is a dynamic object init from 1
spi.insert(new int[3]()); // elem is a dynamic array of 3 default-init integers
spi.insert(&x); // elem is address of stack memory object
}
}
所以我如何有效地释放具有动态内存的元素?
您必须遍历容器的内容并释放与每个元素相对应的内存。