AniArim, Вам уже ниже сказали - надо в качестве цели выбрать медиану всех чисел. Потому что при сдвиге цели на 1 вправо вы прибавляете столько, сколько числел слева и вычитаете столько, сколько чисел справа. Поэтому, если справа чисел больше, чем слева - то надо двигаться вправо и т.д. В итоге остановимся или на среднем числе (если их нечетно) или можно выбрать любое число из интервала между двумя средними (если чисел в массиве четное количество).
Ваши эвристики с выбором среднего не работают. Вам надо или отсортировать массив и брать среднее число или писать quickselect. Думаю в задаче достаточно будет отсортировать - вряд ли у вас там миллионы чисел в массиве.
> потом для того чтобы передать итератор на этот вектор я хотел бы присвоить итератору значение указателя на вектор
Итераторы по сути являются указателями на содержимое вектора. Поэтому если у вас функция принимает итераторы, то вы передавайте туда условынй vector->begin(). И этой функции должно быть глубоко пофигу - исходный вектор там в куче или в стеке.
IliaNeverov, опишите, что вы хотите сделать вообще. Вам куда-то дается итератор, вы хотите завести новый вектор? Или вы хотите итератор передать в какой-то конструктор? Пока вопрос звучит вроде "можно ли кастрюлей построить кухню?"
Кстати, содержимое векторов итак хранится на куче в большинстве случаев.
dominy, Смотрите внимательно - ваша функция возвращает wchar_t. А вы присваиваете указателю на wchar_t. Но, если вы поменяете ее, чтобы возвращать указатель, то вам придется выделять память внутри функции.
Советую поменять фнукию так, чтобы она принимала указатель - куда положить данные и возвращала статус - получилось ли у нее прочитать.
Gigabait, Вы имеете ввиду выполнение кода во время отладки? Дисассемблирование - это тупо чтение исполняемого файла/памяти и превращение машинного кода в ассемблерный.
loganbaby, Значит, было сделано с ошибкой. Или вы забыли повторить после пересоздания проекта, как консольного приложения. Перепроверьте, что все прописано. Ошибка однозначно говорит о том, что линковщик не может найти реализацию SDL функции.
loganbaby, Уже не таже ошибка, читайте внимательнее. Раньше он не мог найти _WinMain, который используется в оконных приложениях, а сейчас не может найти _SDL_main. Судя по названию - это скорее всего часть SDL. Вам надо в свойствах проекта прописать пути к библиотеке для линковщика. Вот тут расписано.
IliaNeverov, А в чем смысл их тогда хранить в одном массиве? Как вы с ними работать собиратесь тогда?
Можно хранить их как void*, но тогда надо где-то рядом хранить пометку о начальном типе и вся работа с элементами будет вестись в большом switch case с явными кастами к изначальным типам.
jcmvbkbc, вы про sigint и т.п? Это совсем не то. Во-первых, это фича операционной системы, а не языка c. Во-вторых, эти сигналы обрабатываются в момент переключения потоков. После выполнения обработки программа продолжает работу с того же места, где ее прервали. Это скорее как многопоточность, а не прерывание.
Ваши эвристики с выбором среднего не работают. Вам надо или отсортировать массив и брать среднее число или писать quickselect. Думаю в задаче достаточно будет отсортировать - вряд ли у вас там миллионы чисел в массиве.