我有以下任務。
我有有限數量的字符串(類別)。然後在每個類別中都會有一組團隊和值對。基於用戶選擇,團隊的數量是有限的。
兩種尺寸不超過25
現在值將改變基於用戶輸入,當它改變球隊應該根據價值進行排序。
我希望STL有某種自動排序的向量或列表容器,但我唯一能找到的是std :: map <>。
所以我想我需要的是:
struct Foo
{
std::string team;
double value;
operator<();
};
std::map<std::string,std::vector<Foo>> myContainer;
並調用的std ::排序()當值會發生變化。
還是有更有效的方法來做到這一點?
[編輯] 我想我需要澄清我的意思。 這樣想一想。
你有一張桌子。這張表的行是團隊。此表的列是類別。這張桌子的細胞分成兩半。上半部分是給定團隊的類別值。每個玩家的這個價值都在增加。 現在,當玩家被添加到一個團隊時,玩家的得分類別將被添加到一個團隊中,並且列中的數據將被排序。因此,對於「A」類,它可能是team1,team2;而對於「B」類,它可能是team2,team1。 然後根據每個球隊的位置將得分分配給每個球隊/類別。 而我將需要顯示該分數。
我希望這會澄清我想要達到的目標,並且更清楚我所尋找的是什麼。
*「然後在每個類別中都會有一個團隊和價值。」* - 這讓我感到困惑。在這句話中,你似乎在說每個字符串都應該與單個團隊/值對(我從關鍵詞「a」,單數形式的團隊和「價值」中得出)相關聯。但在你使用地圖的例子中,你似乎將字符串與* multiple * team/value對('std :: vector')關聯。請澄清(在問題中)。 –
*「現在價值會根據用戶輸入而改變,當它改變時,團隊應該根據價值進行排序。」* - 團隊?形成'Foo'看起來像一個'團隊'只有**一個**值,所以排序它將是相當微不足道的。另外,你的'myContainer'就像你可以得到的通用名。我們不知道這是否是類別的頂級集合,如果它僅代表*一類*類別,請用算法和類型信息的必要細節澄清這個問題。 – WhozCraig
@BenjaminLindley,英語不是我的一種語言,但我試圖澄清這一點,盡我所能。應該按照例子設置一切。 – Igor