【问题标题】:How do I clear list of pair如何清除对列表
【发布时间】:2017-04-14 12:26:30
【问题描述】:
我想从每个测试用例的主函数中清除 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
}
【问题讨论】:
标签:
c++
list
stl
std-pair
【解决方案1】:
好吧,既然它是一个指向列表的指针,你应该首先检查它是否存在。并且您需要决定是否要在清除它之后保留它指向的对象,但这会清除它:
void Graph::clearList()
{
if ( adj ) {
adj->clear();
}
}
edit:根据你在做什么,有几个旁注......如果顶点成员变量 V 的数量在你的列表中,只需使用 adj->size() .您还应该考虑不使用指向列表的指针,而直接使用列表来避免在 Graph 中手动管理 adj 的生命周期。最后,您的构造函数暗示您要预先声明顶点的数量,也许另一个容器更合适,比如矢量?