我是C++初學者。在我使用C#之前。 Bellow是一個C#腳本。我如何在本地C++中完成相同的操作?如何將此C#腳本轉換爲本機C++?
所有我需要的是:
- 列表,或類似的,具有INT-INT鍵值對的值
- 可以自動排序。如果不是,它必須是鍵進行排序,並且它可以得到一個 值的指數(我的每一個值是確定的)
我試圖std::map
但它不具有內置排序值或獲取密鑰按價值。 C++有類似的東西,如在c#中的sortedlist
?
非常感謝!
public static SortedList<int, int> sortedList1 = new SortedList<int, int>();
static void List_Add(int i) // 0 < i < 1000
{
if (!sortedList1.ContainsValue(i))
sortedList1[Environment.TickCount] = i;
}
static void List_Remove(int i) // 0 < i < 1000
{
if (sortedList1.ContainsValue(i))
sortedList1.RemoveAt(sortedList1.IndexOfValue(i));
}
static int List_toInt()
{
int time = 0;
int keys = 0;
bool modifier = false;
foreach (KeyValuePair<int, int> i in sortedList1)
{
if (i.Value > 90) modifier = true;
if (i.Key - time > 200 | modifier | keys > 1000)
{
keys = keys * 1000 + i.Value;
time = i.Key;
}
}
return keys;
}
非常感謝您!如何運作'List_Remove'?因爲似乎地圖沒有內置的價值發現? 'List_Add'中的 – user2310322 2013-04-23 08:21:51
,檢查是否有密鑰存在,不要更改它的值! – Sakura 2013-04-23 08:42:09
如果sortedList1具有pair(1,1000)您的'List_Remove(1000)'查找鍵1000,則找不到值1000。 – user2310322 2013-04-23 14:32:36