如何清除对列表

时间:2017-04-14 12:26:31

标签: c++ list stl std-pair

我想从每个测试用例的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
}

1 个答案:

答案 0 :(得分:0)

好吧,既然它是一个指向列表的指针,你应该首先检查它的存在。而且你需要决定是否要在清除之后保留它指向的对象,但这样可以清除它:

void Graph::clearList()
{
    if ( adj ) {
        adj->clear();
    }
}

编辑:一些侧面笔记取决于你正在做什么...如果顶点成员变量V的数量是列表中的内容,只需使用adj- &gt; size()。您还应该考虑不使用指向列表的指针,只是直接使用列表来避免在Graph中对adj进行手动生命周期管理。最后,你的构造函数意味着你要预先声明顶点的数量,也许另一个容器更合适,比如vector?