我想从每个测试用例的main函数中清除adj列表。
class Graph
{
long long int V; // No. of vertices
list< pair<long long int,long long int> > *adj;
public:
Graph(long long int V); // Constructor
//clear previous values
void clearList();
};
void Graph::clearList()
{
//WHAT SHOULD I WRITE HERE
}
答案 0 :(得分:0)
好吧,既然它是一个指向列表的指针,你应该首先检查它的存在。而且你需要决定是否要在清除之后保留它指向的对象,但这样可以清除它:
void Graph::clearList()
{
if ( adj ) {
adj->clear();
}
}
编辑:一些侧面笔记取决于你正在做什么...如果顶点成员变量V的数量是列表中的内容,只需使用adj- &gt; size()。您还应该考虑不使用指向列表的指针,只是直接使用列表来避免在Graph中对adj进行手动生命周期管理。最后,你的构造函数意味着你要预先声明顶点的数量,也许另一个容器更合适,比如vector?