我有一个存储指针的向量向量。目前我迭代它们并比较每个指针,如果我找到不相等的那些,那么矢量也不相等,但我想知道这是否是正确的方法来做这样的事情。
UPD:std::vector<std::vector<Combination*> > combinations;
答案 0 :(得分:3)
如果您正在比较指针本身,那么您可以在整个矢量(矢量)上使用operator==
。它的作用是首先检查两个向量的大小是否相等。如果是,则随后使用operator==
比较每个元素。因此,如果您有矢量矢量或矢量矢量矢量,则可以递归地工作。虽然它不是技术上的递归,但因为每个operator==
实际上是一个不同的函数。
如果您要取消引用指针,那么您的方式就可以了。但是对于这种情况,您可以考虑将std::equal
与适当的谓词一起使用。