我有一個名稱數組,但我只需要唯一的名稱。我使用std::set
,以便清除重複。然而,我需要按照與輸入相同的順序出現名稱。這意味着,如果我輸入的是:如何阻止std :: set從排序?
Mary
Mary
John
John
John
Apple
Apple
Apple
[編輯]:檢查的意見/回答後,我想那每個名字出現在組和不輸入後來出現的重視。參考例子,Mary
出現兩次,那就是。它不會再次出現以後[/編輯]
我希望我的輸出是:
Mary
John
Apple
使用std::set
,我得到的分類之一:
Apple
John
Mary
我發現有unordered_set
(來自{cplusplus.com})。這一次再次不是保持輸入的順序。
問:
- 有沒有辦法從分揀停止
std::set
? - 我已閱讀{one can write own's sorting method for
std::set
}。現在,如果我不能阻止set
排序,那麼編寫我自己的排序方法,但始終將輸入的第一個元素返回爲最小? (如果我能詳細瞭解如何做到這一點...) - 或者
std
還有其他的東西可以將一組字符串減少爲一個唯一的集合,但是不會對它進行排序嗎?
謝謝!
使用vector或deque – 2014-09-01 09:38:57
1.否2.不起作用。 3.'std :: vector',在插入新元素之前檢查重複項。 – juanchopanza 2014-09-01 09:39:23
您的所有重複元素是否都是連續的,如您的示例輸入中所示?如果是這樣,然後使用['std :: unique'](http://en.cppreference.com/w/cpp/algorithm/unique) – 2014-09-01 09:41:27