3

我有一个存储指针的向量向量。目前我遍历它们并比较每个指针,如果我找到不相等的指针,那么向量也不相等,但我想知道这是否是做这件事的正确方法。

升级版:std::vector<std::vector<Combination*> > combinations;

4

1 回答 1

3

如果您正在比较指针本身,那么您可以只operator==在整个向量(向量)上使用。它首先检查两个向量的大小是否相等。如果是,它随后使用 比较每个元素operator==。所以如果你有一个向量的向量,或者一个向量的向量,这将递归地工作。尽管从技术上讲它不是递归,因为每个operator==实际上都是不同的函数。

如果您取消引用指针,那么您这样做的方式很好。但是对于这种情况,您可以考虑使用std::equal适当的谓词。

于 2012-10-13T15:44:38.723 回答