- 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;
}
Кстати, как в плюсах аналог python2 cmp(a,b) делают?
Не нужен.
Но можно так:
Не на много длиннее cmp(a,b)
и да, раз уж strictly, то как это вяжется с допущением v1[i] == v2[i]
реализовано крайне плохо, второе условие не нужно, первое должно быть >=, проверка за выходы за границы обязательна
не верю что production code
[trololomode: on]
Внезапно никакого копирования:
http://ideone.com/OtITL
[trololomode: default]
"Warning: default synonym as on"
http://ideone.com/eUMqk
http://ideone.com/FSTzi
И что? Вас это пугает? Всё в соответствии со стандартом.
И чего вы вдруг не ожидали? Всё в соответствии со стандартом.
Как это не нужно? Если поменять первое на >= а второе убрать, то на случае (1,2,3) (1,2,4) он вернет false, а оригинальный код возвращал true.
Насчет проверки и const ссылок согласен.
(1,2)<(2,1) == false
(2,1)<(1,2) == false
Удачной сортировки!
http://ideone.com/5xC08
И сортировать контейнер векторов... Это мощно!