2015-08-08 46 views
1

在一個問題的輸入非增加列表的實現是數字的多個列表,與STL C++

EX-

(1,5,4,3), (2,7,3,1,5), (1,9,1,7,3,7,2), (3,5,4,2,3). 

,其中每個列表可能出現兩次。

在最後的輸出不同的列表應打印,其中,在每一個列表中的元素應以非遞增的順序進行排序,以及列表應該被排序那樣。

是否有可能在C++中使用map來實現這一切?

輸出,用於上面的例子應該是

9,7,7,3,2,1,1 

7,5,3,2,1 

5,4,3,3,2 

5,4,3,1 

簡單地說,設置唯一的列表,其中每個列表中的號碼再次排序在非遞增次序的。

+0

你是什麼意思「每個列表可能出現兩次」?你會提供一個例子嗎? – amdn

+0

這就是說,列表(1,5,4,3),(2,5,1)再次(1,5,4,3).....是輸入。 – sb15

+0

所以在這種情況下,輸出應該是(5,4,3,1)(5,4,3,1)(5,2,1)? – amdn

回答

3

std::set一定會幫助你。如果您插入列表爲std::set<int>

編輯您將獲得一個唯一的排序列表的結果集:

std::set<std::multiset<int, std::greater<int>> myList; 

內部的一組要排序的非升序守信複製元素,外設置只保留內部列表的唯一列表。

+0

不完全是,我實際上想要實現一組唯一的列表,其中內每個列表中的數字再次按非遞增順序排序。 – sb15

+0

@ sb15我編輯了答案 – Steephen

+1

+1這就是我要這麼做的......這是一個在Coliru Viewer中的演示http://coliru.stacked-crooked.com/a/56fe2e6be9358404 – amdn