2 негізгі мәнмен картаны қалай жасауға болады

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?

Алдын-ала рақмет

0
«Кілт класс» std :: pair дегенді не ұсынбайды?
қосылды автор Jon, көзі
егер үй тапсырмасы болса, оны белгілеңіз. бұл жағдайда сіз 3-ші партия кітапханаларын қамтымайтын тиісті жауаптар аласыз
қосылды автор Andriy Tylychko, көзі
@AndyT оның үй тапсырмасы емес. Мен кейбір жақсы тәжірибені іздедім.
қосылды автор Saaras, көзі

3 жауаптар

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
қосылды
Соңғы ұсыныс үшін +1 дұрыс, себебі time date байланысты.
қосылды автор Andriy Tylychko, көзі

2 негізгі мәнмен картаны жасай алмайсыз, күрделі кілт мәні бар (екі түрден тұратын) картаны жасай аласыз. Алайда, бұл сіз күннің уақытына қарамастан апта күнін көрсету үшін картаға қарауға мүмкіндік бермейді. Мен кілт ретінде пайдалану үшін жаңа класс құрдым, ал күнде немесе уақытпен жұмыс істей алатын кейбір көмекші функциялары бар еді.

Сондай-ақ, пайдалану кодын Boost.MultiIndex сізге көмектесе алады.

0
қосылды
@Andy T: Неліктен де? Мен осы дүйсенбінің барлық іс-шараларының кестесін, сондай-ақ осы аптада сағат 20.00-ге дейін барлық іс-шараларды іздеу мүмкіндігіне ие болар едім.
қосылды автор K-ballo, көзі
time сияқты көрінеді day . Бұл жағдайда time бойынша индекстеу ешқандай мәні жоқ. @Ben Voigt ұсынған map
қосылды автор Andriy Tylychko, көзі
Жалпы алғанда келісілдім, бірақ менің үй тапсырмам, бұл қарапайым талаптарға және қарапайым шешімдерге әкеледі деп ойлаймын. Иә, бұл менің болжамым.
қосылды автор Andriy Tylychko, көзі
Кешіріңіз. Шын мәнінде мен мектептегі уақыт кестесін мысалға келтірдім. Мен шын мәнінде күрделі кілт/композиттік кілт сөзін алмадым. Осылайша түсінікті болу үшін, мен мысалды қолдандым. Рахмет
қосылды автор Saaras, көзі
Кірістірілген кітапхананы кіріктірілген жоба бойынша жұмыс істей алмаймын. Мен кіріктірілген жүйе үшін күшейтуді қолдана отырып, мен өзімнің артықшылықтарым туралы оқыдым. Мен әлі күнге дейін жобаға STL контейнерлерін пайдалануды немесе қолданбауды тоқтатамын (STL контейнерлері мен ендірілген жүйелердің тиісті хабарламаларын оқыңыз).
қосылды автор Saaras, көзі

Сіз оны тере аласыз.

typedef pair key;
map myMap = new map();
0
қосылды