2 anahtar değeri olan bir harita nasıl oluşturulur

I am looking for something like a school time table. Based on two input - Day of the week and Time of the day, one decides the subject. To implement this in c++, I was thinking of something like "map < pair < int, int>, int>". I was reading here to use a key class and operator overloading. Is there any other elegant way of doing it?

Şimdiden teşekkürler

0
"Anahtar sınıf", std :: pair 'i neyin sunmadığını sunuyor?
katma yazar Jon, kaynak
eğer ödev ise, lütfen onu etiketleyin. Bu durumda 3pr parti kütüphaneleri içermeyen uygun cevapları alacaksınız
katma yazar Andriy Tylychko, kaynak
@AndyT bir ev ödevi değildir. Bazı en iyi uygulamaları arıyordum.
katma yazar Saaras, kaynak

3 cevap

That's not a map with two keys (which would allow you to look up items from knowledge of just one key), it's a composite key, and map, subject> should work just fine.

Also consider map

1
katma
Son öneri için +1, doğru gibi geliyor çünkü büyük olasılıkla time date 'a bağlıdır.
katma yazar Andriy Tylychko, kaynak

2 anahtar değeri olan bir harita oluşturamazsınız, karmaşık anahtar değeri olan bir harita oluşturabilirsiniz (iki türden oluşur). Ancak, bu, günün saatine bakmaksızın, haftanın sadece günü için haritaya bakmanıza izin vermez. Anahtar olarak kullanmak için yeni bir sınıf ve sadece gün veya tam zamanlı olarak çalışabilmem için bazı yardımcı fonksiyonlar oluştururdum.

Ayrıca, kullanım durumunuz için Boost.MultiIndex size yardımcı olabilir.

0
katma
@Andy T: Neden böyle? Bu pazartesi için tüm etkinliklerin yanı sıra bu hafta saat 8:00 için tüm aktiviteleri planlayabileceğimizi umuyorum.
katma yazar K-ballo, kaynak
time , gün 'e bağlı gibi görünüyor. Bu durumda sadece time 'da indeksleme anlamsızdır. Yani map
katma yazar Andriy Tylychko, kaynak
Genel olarak kabul edildi, ancak daha basit gereksinimlere ve daha basit çözümlere yol açan bir ev ödevi olduğunu hissediyorum. Evet, sadece benim hipotezim.
katma yazar Andriy Tylychko, kaynak
Afedersiniz. Aslında okul zaman çizelgesinden örnek olarak bahsettim. Aslında karmaşık anahtar/bileşik anahtar kelimesini almadım. Bunu açıklığa kavuşturmak için örneği kullandım. Teşekkürler
katma yazar Saaras, kaynak
Gömülü bir projede çalışırken destek kütüphanesini kullanamıyorum. Gömülü sistem için destek kullanmanın artıları ve eksileri hakkında okumuştum. Projem için STL konteynerleri kullanıp kullanmama konusunda hala kafam karışık (STL konteynerlerin ve gömülü sistemlerin ilgili yazılarını okuyun).
katma yazar Saaras, kaynak

Yazabilirsin.

typedef pair key;
map myMap = new map();
0
katma