Vladislav
У меня теперь вот так выглядит после оптимизации)
Constantine
Смотри, достаточно указать что-то вроде "если element_type является TriviallyConstructible, то data() может быть записан вплоть до capacity()"
Constantine
или какое-то там условие на T, что можно работать с неинициализированной памятью
Vladislav
А чем это поможет, если size все равно не поменять на нужный без memset'а?
Vladislav
Уж лучше raw_resize какой-нибудь для TriviallyConstructable T
Constantine
хм да, действительно нужен unallocated_resize
Arseny
https://ned14.github.io/outcome/
Круто, мы уже несколько лет аналогично работаем с ошибками.
Расулходжа
в одном месте надо изменить код
Крылатый
Што
Расулходжа
#include <stdlib.h> #include <stdio.h> #include <math.h> #pragma warning(disable:4996) float Quicksort(float *Array, int size) { float tmp = 0; if (size > 0) { int left = 0, right = size, middle = Array[size / 2]; do { while (Array[left] < middle) left++; while (Array[right] > middle) right--; if (left <= right) { float tmp = Array[left]; Array[left] = Array[right]; Array[right] = tmp; left++; right--; } } while (left <= right); Quicksort(Array, right-size+1 ); Quicksort(Array+middle, right+left-1); } return *Array; } int main(int argc, char *argv[]) { float *Array; int n, i; FILE *In = fopen("In.txt", "r"); FILE *Out = fopen("Out.txt", "w"); if (In != NULL) { if (fscanf(In, "%d", &n) == 1) { if (n == 0){ fprintf(Out, "0"); } Array = (float*)malloc(n*sizeof(float)); for (i = 0; i < n; i++) { fscanf(In, "%f", &Array[i]); } Quicksort(Array, n ); fprintf(Out, "%d ", n); for (i = 0; i < n; i++) { fprintf(Out, "%f ", Array[i]); } } } fclose(In); fclose(Out);
Расулходжа
Quicksort(Array, right-size+1 ); Quicksort(Array+middle, right+left-1); вот здесь надо исправить
Крылатый
Пости код на пасту
Крылатый
М да
Расулходжа
хз на что изменить
Ivan
в закрепленном сообщении подкаст упомянут, а где ссылка на подкаст то?
vladislav
Подкаст есть, но ссылку мы вам не дадим
vladislav
Учитывая, что там указано, что @isenbaev работает в Facebook, то про них можно забыть, кмк
vladislav
давно это всё было
Anonymous
Всем привет! Народ, подскажите. Мне нужно сейчас определиться с направлением, в котором я буду разбираться, и, в связи с этим хотел спросить. Что нужно, чтобы начать развиваться в направлении 3D разработки на С++? Gamedev, моделирование. Именно азы. Много ли там нужно математики и какой именно. Заранее спасибо
Toss
Gamedev == математика
Egor
Всем привет! Народ, подскажите. Мне нужно сейчас определиться с направлением, в котором я буду разбираться, и, в связи с этим хотел спросить. Что нужно, чтобы начать развиваться в направлении 3D разработки на С++? Gamedev, моделирование. Именно азы. Много ли там нужно математики и какой именно. Заранее спасибо
Из математики точно потребуется жонглировать матрицами размеров 2*2, 3*3, 4*4, в основном умножать и понимать, как они соотносятся с преобразованиями трёхмерного пространства. Вероятно, также будет полезно для целей отладки понимать, как примерно должны выглядеть матрицы разных преобразований.
Egor
Возможно, потребуется какая-нибудь трёхмерная/двумерная аналитическая геометрия, но она наверняка уже много где реализована и самостоятельно разбираться в алгоритмах не надо.
Egor
Да
Anonymous
А вот если практически начать осваивать уже программирвание, чтобы было с чем идти на рынок труда, с чем начать возиться?
Ivan
все кто ни попадя идут во фронт-энд разработку 😃
Ivan
в геймдев с нулем опыта войти сложно
Ivan
Не все так считают
ты среди них? :)
Timothy
по мат-части можешь прочесть Андре Ламота программирование 3D игр главы 4-7 (там 400 стр.)
Pavel
ты среди них? :)
Нет, я склоняюсь к мнению что необходимо знать достаточно много, прежде чем братся
Anonymous
в геймдев с нулем опыта войти сложно
Вот потому и хочу выяснить, что да как. Важно курс, направление выбрать, чтобы не рассеивать внимание на посторонние детали.
Anonymous
UE4 как-то поспособствует такому обучению?
Anonymous
дело в том что я его немного уже знаю, практики очень мало. Вот и хочу продолжить осваивать
Ildar
Гейдев хорошо только если какие-нибудь крутые ААА проекты делать
Ildar
В остальном это самая гнилая индустрия, имхо
Ivan
если немного знаешь, то и терять нечего :) я бы для начала взял чего попроще. По с++ обычно на собеседованиях любят унижать, а в геймдеве и подавно. Не знаю чем это обусловлено, конечно. Если хочешь хорошее упражнение — попробуй написать свой движок для рендера, а потом написать на нем игру. Но это только как упражнение
Ivan
В остальном это самая гнилая индустрия, имхо
ну соотношение з.п./напряг не очень, как минимум :)
Ildar
ну соотношение з.п./напряг не очень, как минимум :)
да даже не в этом дело. Я работал в двух геймдев конторах, оба раза попал на дичайше неадекватный менеджмент, ощущение было, что таких людей привлекает индустрия. Жена работала тоже в одной конторе, на корпоративе их гендир с придыханием вспоминал времена кранчей, когда в офисе ночевали.
Ivan
у меня примерно та же ситуация была, но вот в Glu Mobile было еще ничего
Berkus
Вот потому и хочу выяснить, что да как. Важно курс, направление выбрать, чтобы не рассеивать внимание на посторонние детали.
берешь игру которую хочешь сделать, уменьшаешь ее масштаб в 1000 раз и начинаешь делать
Berkus
через несколько лет пересматриваешь чему научился
Pavel
Собственно отношение к сотрудникам
Ildar
Все от контор зависит
конечно, я не исключаю, что мне просто не повезло. Но осадочек остался.
Pavel
Я работал в одной конторе, кранчи там конечно были, но не прям жесткие + они оплачивались, было питание бесплатное (весьма недруное, свои повора готовили) и всякие плюшки в виде до 30К руб на др в виде премии
Anonymous
То есть в итоге: начать можно но есть свои нюансы именно из-за специфики самого рынка игр. Я правильно понял? А если не геймдев, то во что еще есть смысл погрузиться?
Berkus
придумать свой язык контрактов с уязвимостями, сделать его популярным, снять пенку и съебать на бали пожизненно
Ivan
лол
Anonymous
в б*****йн конечно
здесь за него банят? ))
Berkus
даже без предупреждений
Berkus
ну дальше есть много опций
Samat
блокчейн 🤔
Anonymous
Ну плюсы же не только в игровых движках и в том-что-нельзя-называть
alekum
И умереть от передоза счасья
Vsevolod
уж лучше, чем от водки и от простуд
Berkus
Ну плюсы же не только в игровых движках и в том-что-нельзя-называть
игры, реалтайм, hft, CERN ускорители полностью на с++, так что смотри что тебе хочется то и делай
Berkus
язык мощный, можно всё
Andrey
job_ уже rvalue
Egor
job_ уже rvalue
Неверно.
Egor
job_ уже rvalue
http://thbecker.net/articles/rvalue_references/section_05.html
Andrey
там копикоструктор только
Andrey
был бы мув, был бы рвалью
Andrey
push_back может в рвалью
Andrey
так что там все мувится
Andrey
посмотри на вывод, адреса совпадают для take и execute
Egor
посмотри на вывод, адреса совпадают для take и execute
Я не про цикл, я про WorkerPool::schedule. Там вы зачем-то требуете, чтобы пареметр job_ был rvalue-ссылкой, а затем это никак не используете, копируя Job в вектор. Возможны оптимизации, но не гарантируются.