Войти
ФлеймФорумПрограммирование

C++03 - удалить из вектора целых элементы меньше 10

Страницы: 1 2 316 17 Следующая »
#0
11:23, 4 дек. 2017
arr.erase( std::remove_if( arr.begin(), arr.end(), std::bind2nd( std::less<int>(), 10 ) ), arr.end() );
+ ранее ошибочно был приведён другой код не соответствующий С++03
+ Показать

#1
11:24, 4 дек. 2017

P.S.
А на что вы готовы пойти ради STL-correctness?

#2
11:28, 4 дек. 2017

С лямбдами это же уже устарело все?

#3
11:35, 4 дек. 2017

=A=L=X=
> C++03

Изображение
#4
11:39, 4 дек. 2017

ud1
> С лямбдами это же уже устарело все?

arr.erase(std::remove_if(arr.begin(),arr.end(),std::bind(std::less<int>(),std::placeholders::_1,10)),arr.end());
vs
arr.erase(std::remove_if(arr.begin(),arr.end(),[](int x){return x<10;}),arr.end());

Почти 30 символов экономии.

+ Показать

#5
11:46, 4 дек. 2017

=A=L=X=
> Но по моему всё равно выглядит как...
да не, уже вменяемо вроде.

#6
11:52, 4 дек. 2017

Если учесть, что arr.begin(),arr.end(),[](int x){return x<10;}),arr.end() будут дублироваться в 95% случаев подобного кода, то не особо и вменяемо, больше похоже на синтаксический мусор, первая строчка так вообще.

+ Показать
#7
12:14, 4 дек. 2017
+ Показать
#8
12:23, 4 дек. 2017
+ Показать
#9
12:31, 4 дек. 2017
+ Показать
#10
12:38, 4 дек. 2017
+ Показать
#11
12:39, 4 дек. 2017

А ведь это на собеседовании можно прямо таки делать "еврейской задачей" (tm).
Соискатель если написал через STL как в первопосте - говоришь ну и уродливая же и непонятная простыня - нам такие бредописатели в команде не нужны.
А если напишет через цикл без STL - говоришь, что он явно не знает STL и такие индусы нам тут в команде не нужны.
А тебе просто рожа у него не нравится и всё тут - выход есть!

#12
12:39, 4 дек. 2017

=A=L=X=
если это всё равно никто читать не будет, то можно как угодно. если людям потом с этим кодом жить, то только так:

  for(auto it = vec.begin(); it != vec.end();)
  {
    if(*it < 10)
      it = vec.erase(it);
    else
      it++;
  }
#13
12:42, 4 дек. 2017
Suslik
можно цикл на while заменить и условие упростить.
#14
12:43, 4 дек. 2017

Suslik
у первопоста линейная сложность, а у тебя квадратичная.

Страницы: 1 2 316 17 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.