C++ 如何清除配对的列表

C++ 如何清除配对的列表,c++,list,stl,std-pair,C++,List,Stl,Std Pair,我想从每个测试用例的主函数中清除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::clearLis

我想从每个测试用例的主函数中清除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
}
类图
{
long int V;//顶点数
列表*adj;
公众:
图(长int V);//构造函数
//清除以前的值
void clearList();
};
void图形::clearList()
{
//我应该在这里写什么
}

既然它是指向列表的指针,您应该首先检查它是否存在。在清除对象后,您需要决定是否要保留它所指向的对象,但这将清除它:

void Graph::clearList()
{
    if ( adj ) {
        adj->clear();
    }
}
编辑:根据你正在做的事情,有几个旁注。。。如果成员变量V的顶点数是列表中的值,只需使用adj->size()即可。您还应该考虑不使用列表中的指针,直接使用列表来避免图形中的ADJ的手动寿命管理。最后,构造器意味着您要预先声明顶点的数量,也许另一个容器更合适,比如向量