Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Mapy w obie strony

Ostatnio zmodyfikowano 2015-03-20 15:03
Autor Wiadomość
dek12
Temat założony przez niniejszego użytkownika
Mapy w obie strony
» 2015-03-18 22:13:11
Siemanko, czy mapy można rozpoznawać w obie strony, tzn, gdy mamy:

map<int, string> tydzien;
tydzien[1] = "niedziela";

to dla tydzien[1] otrzymamy "niedziela"
a jak teraz podając "niedziela" otrzymać 1?
trzeba robić dwie oddzielne mapy? czy istnieje jakiś kontener, który to umożliwia?
P-128750
pekfos
» 2015-03-18 22:35:04
Mapa zapewnia optymalne wyszukiwanie tylko w jedną stronę. W drugą możesz tylko ręcznie.
P-128755
dek12
Temat założony przez niniejszego użytkownika
» 2015-03-18 22:44:42
W sensie za pomocą iteratorów? i first, second?
P-128757
Monika90
» 2015-03-19 09:39:19
jest coś takiego jak Boost.Bimap
P-128768
dek12
Temat założony przez niniejszego użytkownika
» 2015-03-19 22:03:01
Zrobiłem to na zwykłej mapie.
I teraz mam taki dziwny wymóg.
kawałek mapy wygląda tak:
C/C++
{ 20, "dwadziescia" }, { 30, "trzydziesci" }, { 40, "czterdziesci" }, { 50, "piecdziesiat" }, { 60, "szescdziesiat" },
{ 70, "siedemdziesiat" }, { 80, "osiemdziesiat" }, { 90, "dziewiecdziesiat" }, { 100, "sto" }, { 200, "dwiescie" },
{ 300, "trzysta" }, { 400, "czterysta" }, { 500, "piecset" }, { 600, "szescset" }, { 700, "siedemset" }, { 800, "osiemset" },
{ 900, "dziewiecset" }

Jest to jedna mapa. Nie ma podziału na jedności, dziesiątki, setki itp. Chodzi jak się pewnie domyślacie o zamianę liczb na postać słowną i na odwrót. Zrobiłem zamianę z postaci słownej na liczbową. Ale teraz nie mam pojęcia jak zrobić to w drugą stronę. Macie jakis pomysł? Czy lepiej pozamieniać na oddzielne mapy (jedności, naście, setki itp)?
P-128787
Brunon3
» 2015-03-20 13:48:11
Czemu nie zrobisz po prostu dwóch map...?
P-128804
dek12
Temat założony przez niniejszego użytkownika
» 2015-03-20 14:30:18
A po co dwie?
Przecież tą mogę się odwoływać w obie strony. Chodzi bardziej o algorytm. Mając np liczbę 826, nie znajdę takiej w mapie, więc muszę ją jakoś rozbić np na 800 + 20 + 6, i wtedy z tych trzech wartości wyciągnę odpowiedniki słowne, tylko jaki ułożyć algorytm, żeby tak rozbijał liczbę.
P-128808
michal11
» 2015-03-20 15:03:56
To akurat jest prosta matematyka. Wystarcza 2 operacje: dzielenie i modulo. Zrób sobie na jakimś przykładzie na kartce najpierw.
P-128810
« 1 »
  Strona 1 z 1