|
|
|
Покритикуйте плиз (по поводу std::map)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Есть такая задача: задаются правила, что-то типа: 300 a = 700 b 3 c = 8 a 4 b = 7 d ... и задаются задачи: 4 a = ? c 20 b = ? d Нужно вместо знаков вопроса вывести правильные значения. Я использую std::map. Элементы первой карты - пары: имя единицы ("a", "b",...), выступающее в роли ключа и вторая крта. Элементы второй карты - пары: имя второй единицы (как ключ), и действительный коэффициент. Т.е, грубо говоря, для каждого правила (4 a = 3 b ) я создаю две записи (a = 3/4 b , b = 4/3 a ) с ключами ["a"]["b"] и ["b"]["a"] соответственно. Доступаюсь к нужным коэффицентам по ключам (именам единиц). Получается, что информация дублируется. Можно ли оптимизировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 12:31 |
|
||
|
Покритикуйте плиз (по поводу std::map)
|
|||
|---|---|---|---|
|
#18+
Проще mymap["ab"] = 700./300.; Т.е. в паре первый эл-т - упорядоченная пара символов, второй - соотношение между ними. Ещё точнее будет, если второй эл-т - тож пара 700,300 - в этом случае будут вычисления с меньшей потерей точности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 15:11 |
|
||
|
Покритикуйте плиз (по поводу std::map)
|
|||
|---|---|---|---|
|
#18+
А забавная задачка. a = 5 b b= 6 c c = 7 d -------------- a = ? d интересно именно присобачить правило вывода, чтобы искать ответ тогда, когда пара явно не указана и требуется получить её значение. В этом случае ваш вариант явно лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 16:18 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=342&tid=2030788]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 350ms |

| 0 / 0 |
