- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
bool strictlyLess(std::vector<int> v1, std::vector<int>v2) { // v1 < v2
bool strictly = false;
for(int i = 0; i < v1.size(); i++) {
if(v1[i] > v2[i]) {
return false;
}
if(v1[i] < v2[i]) {
strictly = true;
}
}
return strictly;
}
bormand 18.05.2012 18:11 # 0
movaxbx 18.05.2012 18:26 # 0
bormand 18.05.2012 18:57 # 0
guest 18.05.2012 21:22 # +1
Кстати, как в плюсах аналог python2 cmp(a,b) делают?
HaskellGovno 18.05.2012 23:12 # 0
Не нужен.
Но можно так:
Не на много длиннее cmp(a,b)
vercetti 19.05.2012 00:20 # 0
HaskellGovno 19.05.2012 00:24 # 0
defecate-plusplus 18.05.2012 20:59 # 0
и да, раз уж strictly, то как это вяжется с допущением v1[i] == v2[i]
реализовано крайне плохо, второе условие не нужно, первое должно быть >=, проверка за выходы за границы обязательна
не верю что production code
HaskellGovno 18.05.2012 23:22 # 0
[trololomode: on]
Внезапно никакого копирования:
http://ideone.com/OtITL
[trololomode: default]
"Warning: default synonym as on"
defecate-plusplus 19.05.2012 12:39 # 0
http://ideone.com/eUMqk
defecate-plusplus 19.05.2012 12:55 # 0
http://ideone.com/FSTzi
HaskellGovno 19.05.2012 14:58 # −3
И что? Вас это пугает? Всё в соответствии со стандартом.
HaskellGovno 19.05.2012 15:00 # −3
И чего вы вдруг не ожидали? Всё в соответствии со стандартом.
bormand 19.05.2012 05:56 # 0
Как это не нужно? Если поменять первое на >= а второе убрать, то на случае (1,2,3) (1,2,4) он вернет false, а оригинальный код возвращал true.
Насчет проверки и const ссылок согласен.
TarasB 18.05.2012 18:50 # +4
(1,2)<(2,1) == false
(2,1)<(1,2) == false
Удачной сортировки!
bormand 18.05.2012 18:55 # 0
HaskellGovno 18.05.2012 23:05 # 0
http://ideone.com/5xC08
И сортировать контейнер векторов... Это мощно!