2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 MS VS 2015 sort identifier not found
Сообщение05.12.2017, 13:59 
Аватара пользователя
Не пойму, что не так?
#include <algorithm> есть в том же файле...
Спасибо за комменты.

 
 
 
 Re: MS VS 2015 sort identifier not found
Сообщение05.12.2017, 14:39 
Аватара пользователя
Всегда пожалуйста.
std::sort тоже не находит?

 
 
 
 Re: MS VS 2015 sort identifier not found
Сообщение05.12.2017, 14:58 
Аватара пользователя
Спасибо. Что-то находит, но ругается, видимо тип переменной не понятен. Вопрос встречный, может ли быть быть отсортирован обычный float* буфер.
И что лучше, для медианы sort или strict_sort? Пеовый, вроде бы не точный.

 
 
 
 Re: MS VS 2015 sort identifier not found
Сообщение05.12.2017, 15:18 
Аватара пользователя
1) https://stackoverflow.com/questions/5897319/how-to-use-stdsort-to-sort-an-array-in-c
2) Я не знаю, что такое strict_sort. Но не знаю и причины, по которой обычный std::sort не справился бы с медианой.

 
 
 
 Re: MS VS 2015 sort identifier not found
Сообщение05.12.2017, 15:35 
Аватара пользователя
worm2 в сообщении #1272227 писал(а):
1) https://stackoverflow.com/questions/5897319/how-to-use-stdsort-to-sort-an-array-in-c
2) Я не знаю, что такое strict_sort. Но не знаю и причины, по которой обычный std::sort не справился бы с медианой.

Спасибо. То есть sort даёт точную сортировку?
Сейчас попробую.

 
 
 
 Re: MS VS 2015 sort identifier not found
Сообщение05.12.2017, 15:41 
Аватара пользователя
Если вы имеете в виду, что sort сохраняет порядок одинаковых (с точки зрения сортировки) элементов — то, скорее всего, нет, он такого не гарантирует. Надо стандарт курить. Но медиане, кажется, на это наплевать?

 
 
 
 Re: MS VS 2015 sort identifier not found
Сообщение05.12.2017, 15:46 
Аватара пользователя
Все хорошо, только вот как работать с динамическими массисами? Как задать end()?

-- Вт дек 05, 2017 16:48:46 --

worm2 в сообщении #1272238 писал(а):
Если вы имеете в виду, что sort сохраняет порядок одинаковых (с точки зрения сортировки) элементов — то, скорее всего, нет, он такого не гарантирует. Надо стандарт курить. Но медиане, кажется, на это наплевать?

Не то что-то прочитал. Видимо там имелось в виду скорость. Чтобы гарантированно не больше O(logN*N)

-- Вт дек 05, 2017 16:56:55 --

Все. Понял. b и b+size, где *b = new float [size]. Огромное спасибо!

 
 
 
 Re: MS VS 2015 sort identifier not found
Сообщение05.12.2017, 16:18 
Аватара пользователя
MGM в сообщении #1272240 писал(а):
Видимо там имелось в виду скорость. Чтобы гарантированно не больше O(logN*N)
Ах вон оно что! Ну да, std::sort не гарантирует O(logN*N) в худшем случае.
Для гарантии вам нужен std::stable_sort. Но он может несколько хуже работать "в среднем".

 
 
 
 Re: MS VS 2015 sort identifier not found
Сообщение07.12.2017, 23:27 
MGM в сообщении #1272240 писал(а):
Все. Понял. b и b+size, где *b = new float [size].
В C++ есть и более цивилизованные способы.

Используется синтаксис C
#include <algorithm>
#include <vector>

  ...
  std::vector<float> b(size);
  ...
  std::sort(std::begin(b), std::end(b));

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group