問題:
找到有效的解決方案方案來消除給定未排序向量中的重複項向量,同時保持原始排序。
自訂方法:
提供的實作利用一組來追蹤唯一元素。它迭代地檢查每個向量元素,將唯一元素新增到新向量並從原始向量中刪除重複項。
STL 演算法方法:
建議使用利用 STL 演算法的更簡化的解決方案。使用 std::copy_if 演算法並定義一個追蹤已處理元素的謂詞。對於已處理的元素傳回 false,否則傳回 true。
實作謂詞:
使用布林運算子 () 方法建立一個名為 NotDuplicate 的結構。此運算符透過集合插入來追蹤元素。如果插入成功,則傳回 True(表示唯一元素)。
利用 std::copy_if:
利用 std::copy_if 迭代原始向量,應用 NotDuplicate謂詞。唯一元素將複製到名為 uniqueNumbers 的新向量中。引用 std::copy_if 中的 NotDuplicate 實例,可以避免副作用。該演算法提供了更乾淨、更有效率的解決方案,無需手動刪除重複項或維護迭代器。
以上是如何使用 STL 從未排序的向量中刪除重複項,同時保留順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!