- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
bool FindActualQtyOfWeightedReceptacle
( std::map<double,double> &ReceptacleWeighings,
const double ReceptacleId,
double &Weight)
{
Weight = 0.0;
bool recepFound = false;
for (std::map<double,double>::iterator iter = ReceptacleWeighings.begin();
iter != ReceptacleWeighings.end() && !recepFound;
iter++)
{ if (iter->first == ReceptacleId)
{ recepFound = true;
Weight = iter->second;
}
}
return(recepFound);
}
Во Франции одного ведущего (!) С++ программиста с ироничной фамилией Паскаль попросили таки ознакомиться со стандартными контейнерами из библиотеки STL. В частности с std::map. В итоге из-под палки он выдал вот такой "код". Возникает как минимум два вопроса:
1. производительность?
2. и зачем так многа букаф?
Пардон, Жан-Люк, не обижайся. Наговнокодил...
Orfest 15.03.2010 10:35 # +3.8
guest 15.03.2010 10:42 # +4
azabluda 15.03.2010 10:50 # +1.8
guest 17.03.2010 03:46 # +2.2
guest 15.03.2010 18:42 # −14
azabluda 15.03.2010 19:12 # +2.6
xaionaro 15.03.2010 21:21 # −0.8
Всегда бесило, когда какой-то пост минусуют, а никаких аргументов не предоставят.
xaionaro 15.03.2010 21:23 # +1.4
azabluda 16.03.2010 07:20 # +1.2
ps: и честно говоря, все равно не вижу смысла "беситься" по поводу минусов...
guest 15.03.2010 20:35 # +8
Проклятие Паскаля
guest 17.03.2010 03:45 # +2
azabluda 17.03.2010 06:39 # +1.2
guest 02.04.2010 08:38 # 0
guest 17.03.2010 15:06 # +3.6
guest 17.03.2010 20:20 # +2.6
guest 18.03.2010 16:59 # +3.6
guest 18.03.2010 10:46 # +1.2
guest 19.03.2010 03:05 # +2.2
guest 20.03.2010 00:20 # −1
azabluda 20.03.2010 06:24 # +1.8
Весьма верю, что после сложной операции с double, в значение могут закрасться "младшие биты", и тогда например В данной проге, судя по всему, сравниваются только ID, над которыми ни один даже самый отчаяный паскалист не станет так извращаться. Тобишь единственно, что с ними могло происходить, это серия присвоений. Или у тебя есть основания полагать, что результат не гарантирован даже в этом случае? В любом случае ссылка не помешает.
guest 20.03.2010 10:33 # −2
azabluda 20.03.2010 10:39 # +2
guest 20.03.2010 10:33 # 0
azabluda 20.03.2010 10:42 # 0
crox 02.04.2010 16:37 # +2
crox 02.04.2010 16:36 # +2.2
он же француз, они любят многабукаф. Ты просто половину букофф не читай и всё сразу станет нормально ))
guest 05.04.2010 02:41 # −1
выучил чувак STL. первая double определена как const ибо у map ключ const.
по поводу ==. map и set юзают понятие эквивалетности. иными словами должно быть
if((! (iter->first < ReceptacleId) && ! (ReceptacleId < iter->first) )
бла-бла;
а вообще чувак жжот. нахрена он хранит Weight если ему нужно лишь выяснить наличие или отсутствие данного ID в map?
azabluda 05.04.2010 06:08 # +1
guest 05.04.2010 13:41 # +2
не обратил внимание на ссылку