multimap: keyの重複を許す辞書。
keyの重複を許すため、operator[]で検索できない(valueが一意に決まんないから)。
#include <cliext/map>
#include <cliext/utility>
using namespace System;
using namespace cliext;
int main() {
multimap<int,String^> m;
array<String^>^ en = { L"zero", L"one", L"two", L"three" };
array<String^>^ ja = { L"れい", L"いち", L"に", L"さん" };
array<String^>^ ch = { L"零", L"壱", L"弐", L"参" };
for ( int i = 0; i < 4; ++i ) {
m.insert(pair<int,String^>(i, en[i]));
m.insert(pair<int,String^>(i, ja[i]));
m.insert(pair<int,String^>(i, ch[i]));
}
// for each で列挙されるのは key と value の pair
for each ( multimap<int,String^>::value_type item in m ) {
Console::WriteLine(L"{0}:{1} ", item->first, item->second);
}
// コンテナ内の 1 を列挙
typedef multimap<int,String^>::iterator iterator;
for ( pair<iterator,iterator> range = m.equal_range(1);
range.first != range.second; ++range.first ) {
Console::WriteLine(L"({0}:{1})",
range.first->first, range.first->second);
}
return 0;
}