我有这个错误:
不匹配'运营商*' (操作数类型是' std :: __ cxx11 :: list')C / C ++问题
因此:
if (vetorTop[i] == *adj[u]){...
他们是官方的:
adj = new list <int>[N];
vector <int> vetorTop;
提前感谢任何提示或帮助。
答案 0 :(得分:2)
我认为你误解了必须如何使用列表。以下代码没有按照您的想法进行:
adj = new list <int>[N];
这会分配一个N
空std::list<int>
的数组。
另一方面,以下代码创建了N
元素的链接列表:
std::list<int> adj{N};
然后你可以像这样比较两个容器:
bool isEqual = std::equal(std::begin(vetorTop), std::end(vetorTop), std::begin(adj), std::end(adj));
请注意,如果两个容器为std::vector
,则比较将如下进行:
bool isEqual = vetorTop == adj;