2017-09-21 19 views
0

是否有比寫一個循環來檢查重複的每一個值的簡單方法c + +返回true,當矢量內重複發現返回true?如果在一個int型矢量重複發現

+2

肯定的:'的std ::排序()''隨後的std :: adjacent_find()'。 –

回答

1

是否比編寫循環更容易的方法檢查每個值和重複值,並在向量中找到重複項時返回true?

你必須檢查向量的每個元素(直到找到重複),否則你不知道其中一個未被檢查的元素是否有重複。如果用「更容易」來表示「更有效率」,並且如果通過「編寫循環」表示兩個嵌套循環,那麼是的,這裏有一個更有效的方法:首先對矢量進行排序,然後只檢查相鄰元素。

如果「更容易」你的意思是「我能避免寫任何循環」,那麼是的,你可以。兩者在前面段落中提到的步驟(排序,並檢查相鄰元件的等價)具有在標準庫的實現。該功能被命名爲sortadjacent_find