C ++比较矢量和列表

时间:2017-03-20 17:07:43

标签: c++ list if-statement vector compiler-errors

我有这个错误:

  

不匹配'运营商*' (操作数类型是' std :: __ cxx11 :: list')C / C ++问题

因此:

if (vetorTop[i] == *adj[u]){...

他们是官方的:

adj = new list <int>[N];
vector <int> vetorTop;

提前感谢任何提示或帮助。

1 个答案:

答案 0 :(得分:2)

我认为你误解了必须如何使用列表。以下代码没有按照您的想法进行:

adj = new list <int>[N];

这会分配一个Nstd::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;