1
我有一個向量存儲指針向量。目前我遍歷它們並比較每個指針,如果我找到不相等的指針,那麼矢量也不相等,但我不知道這是否是正確的方法來做這樣的事情。比較載體向量
UPD:std::vector<std::vector<Combination*> > combinations;
我有一個向量存儲指針向量。目前我遍歷它們並比較每個指針,如果我找到不相等的指針,那麼矢量也不相等,但我不知道這是否是正確的方法來做這樣的事情。比較載體向量
UPD:std::vector<std::vector<Combination*> > combinations;
如果你比較指針本身,那麼你可以只使用operator==
對整個向量(矢量)。它首先檢查兩個向量的大小是否相等。如果是,則隨後使用operator==
比較每個元素。所以如果你有一個矢量矢量,或者一個矢量矢量矢量,這個遞歸地工作。雖然這不是技術上的遞歸,但每個operator==
實際上是一個不同的功能。
如果您正在取消引用指針,那麼您所做的方式就沒有問題。但是對於這種情況,你可以考慮使用std::equal
和一個適當的謂詞。
你在比較指針本身嗎?還是你先解除引用他們?如果前者,那麼只需在整個矢量上使用['operator =='](http://en.cppreference.com/w/cpp/container/vector/operator_cmp)。否則,你這樣做的方式很好。 –
@BenjaminLindley我比較指針。所以,我應該使用向量的矢量或每個矢量==? – Stals
@Stals,一旦在外部矢量將工作。它會比較每個元素,它會比較每個指針。 – chris