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

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

Страницы: 1 2 3 417 Следующая »
#15
12:47, 4 дек. 2017

entryway
> arr.filter(v=>v>9)
Говно. Контейнер не должен содержать подобных методов.

Suslik
Твой код не сильно проще читать, но только вот его рисать дольше, да к тому же он с багами.


#16
12:48, 4 дек. 2017

kipar

  size_t new_size = 0;
  for(size_t i = 0; i < vec.size(); i++)
  {
    if(vec[i] >= 10)
      vec[new_size++] = vec[i];
  }
  vec.resize(new_size);

Panzerschrek[CN]
> Твой код не сильно проще читать
ничего страшного. практикуй программирование, со временем нормально написанный код воспринимается гораздо быстрее мешанины символов. а лишние 10 секунд, которые я потратил на его написание, с запасом окупятся экономией 2 секунд с каждого из сотни людей, которые будут его читать.

#17
13:03, 4 дек. 2017

Suslik
> i++
Ну ты вапще.

#18
13:07, 4 дек. 2017
+ J
#19
13:13, 4 дек. 2017

читая тему, все сильнее понимаю, что кресты - это как Ленин в мавзолее, раньше был когда-то очень великими и могучим, но сейчас лучше предать его земле, а не глазеть на его формалиновый труп и тем более не трогать его, даже палкой и издалека.

#20
13:16, 4 дек. 2017

http://rextester.com/MTI9820
Inplace версия, конечно, получилась не такой красивой, как хотелось бы.

#21
13:23, 4 дек. 2017

MAMOHT-92
Мамонт рассуждает о Ленине. И кто из вас больший труп? Смешно.

#22
14:31, 4 дек. 2017

=A=L=X=
Ну дезинформация же. std::bind и std::placeholders::_1 - это не
> C++03
и народ ведётся.

#23
14:38, 4 дек. 2017

FordPerfect
Вот так рождаются легенды.
Точно, этож boost::bind. Так это выходит на чистом ++03 только на stl нет пути кроме как функтор руками описывать?

#24
15:26, 4 дек. 2017

Suslik
> а лишние 10 секунд, которые я потратил на его написание, с запасом окупятся
> экономией 2 секунд с каждого из сотни людей, которые будут его читать.
  Не окупятся. Теперь каждый, кто читает этот код должен потратить больше времени на то, чтобы понять, что он делает, чем тот, кто его писал. Так что мне кажется, что автор сих строк далёк от написания кода, который регулярно смотрит сотня людей, иначе ему бы давно сообщили что он не прав. Единственное исключение, которое я знаю, это Линус Торвальдс, который может смело послать любого и сказать, что он дебил, если не понимает, что использование сырых указателей на нуль-терминированные строки лучше, чем использование готовой протестированной библиотеки. Но  думаю не стоит говорить, что его никогда не позовут ни в один нормальный проект.

MAMOHT-92
> что кресты - это как Ленин в мавзолее, раньше был когда-то очень великими и
> могучим, но сейчас лучше предать его земле, а не глазеть на его формалиновый
> труп и тем более не трогать его, даже палкой и издалека.

+ Кстати о мавзолее:

return [](){};
  Вроде же можно писать так:

arr.filter!("a>9").array;
#25
15:38, 4 дек. 2017

Zefick
> + Кстати о мавзолее:
лол, выдержка кода из девелопмент кита любимого зефиком языка, написанного, разумеется, на вражеском ненавистном ему языке.

> Не окупятся. Теперь каждый, кто читает этот код должен потратить больше времени на то, чтобы понять, что он делает, чем тот, кто его писал.
не, я программистов имел в виду, а не тебя

#26
15:42, 4 дек. 2017

Suslik

size_t size = 0;
for (auto x : vec) {
    if (x >= 10) {
        vec[size++] = x;
    }
}
vec.resize(size);
Или типа С++03 именно?

Rust:

vec.retain(|&x| x >= 10);

#27
15:43, 4 дек. 2017

Zefick
> Вроде же можно писать так:
Да и похрен, лучше придумай как inplace версию красивее написать.

#28
15:47, 4 дек. 2017
std::vector<T> result;
for (unsigned u = 0; u < arr.size (); u++)
  if (arr[u] >= 10) result.push_back (arr[u]);
#29
15:57, 4 дек. 2017

Sbtrn. Devil
+

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

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