Vladislav
У меня теперь вот так выглядит после оптимизации)
Constantine
Смотри, достаточно указать что-то вроде "если element_type является TriviallyConstructible, то data() может быть записан вплоть до capacity()"
Constantine
или какое-то там условие на T, что можно работать с неинициализированной памятью
Vladislav
А чем это поможет, если size все равно не поменять на нужный без memset'а?
Vladislav
Уж лучше raw_resize какой-нибудь для TriviallyConstructable T
Constantine
хм да, действительно нужен unallocated_resize
Matwey
Расулходжа
в одном месте надо изменить код
Крылатый
Што
Расулходжа
#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, то про них можно забыть, кмк
Ivan
vladislav
давно это всё было
Anonymous
Всем привет! Народ, подскажите. Мне нужно сейчас определиться с направлением, в котором я буду разбираться, и, в связи с этим хотел спросить. Что нужно, чтобы начать развиваться в направлении 3D разработки на С++? Gamedev, моделирование. Именно азы. Много ли там нужно математики и какой именно. Заранее спасибо
Toss
Gamedev == математика
Egor
Всем привет! Народ, подскажите. Мне нужно сейчас определиться с направлением, в котором я буду разбираться, и, в связи с этим хотел спросить. Что нужно, чтобы начать развиваться в направлении 3D разработки на С++? Gamedev, моделирование. Именно азы. Много ли там нужно математики и какой именно. Заранее спасибо
Из математики точно потребуется жонглировать матрицами размеров 2*2, 3*3, 4*4, в основном умножать и понимать, как они соотносятся с преобразованиями трёхмерного пространства. Вероятно, также будет полезно для целей отладки понимать, как примерно должны выглядеть матрицы разных преобразований.
Egor
Возможно, потребуется какая-нибудь трёхмерная/двумерная аналитическая геометрия, но она наверняка уже много где реализована и самостоятельно разбираться в алгоритмах не надо.
Anonymous
Egor
Да
Anonymous
А вот если практически начать осваивать уже программирвание, чтобы было с чем идти на рынок труда, с чем начать возиться?
Ivan
все кто ни попадя идут во фронт-энд разработку 😃
Igor
Matwey
Ivan
в геймдев с нулем опыта войти сложно
Pavel
Ivan
Timothy
по мат-части можешь прочесть Андре Ламота программирование 3D игр главы 4-7 (там 400 стр.)
Pavel
ты среди них? :)
Нет, я склоняюсь к мнению что необходимо знать достаточно много, прежде чем братся
Anonymous
UE4 как-то поспособствует такому обучению?
Ivan
Anonymous
дело в том что я его немного уже знаю, практики очень мало. Вот и хочу продолжить осваивать
Ildar
Гейдев хорошо только если какие-нибудь крутые ААА проекты делать
Ildar
В остальном это самая гнилая индустрия, имхо
Ivan
если немного знаешь, то и терять нечего :) я бы для начала взял чего попроще.
По с++ обычно на собеседованиях любят унижать, а в геймдеве и подавно. Не знаю чем это обусловлено, конечно.
Если хочешь хорошее упражнение — попробуй написать свой движок для рендера, а потом написать на нем игру.
Но это только как упражнение
Ildar
ну соотношение з.п./напряг не очень, как минимум :)
да даже не в этом дело. Я работал в двух геймдев конторах, оба раза попал на дичайше неадекватный менеджмент, ощущение было, что таких людей привлекает индустрия. Жена работала тоже в одной конторе, на корпоративе их гендир с придыханием вспоминал времена кранчей, когда в офисе ночевали.
Ivan
Berkus
Ivan
у меня примерно та же ситуация была, но вот в Glu Mobile было еще ничего
Berkus
Berkus
через несколько лет пересматриваешь чему научился
Pavel
Pavel
Собственно отношение к сотрудникам
Pavel
Я работал в одной конторе, кранчи там конечно были, но не прям жесткие + они оплачивались, было питание бесплатное (весьма недруное, свои повора готовили) и всякие плюшки в виде до 30К руб на др в виде премии
Anonymous
То есть в итоге: начать можно но есть свои нюансы именно из-за специфики самого рынка игр. Я правильно понял? А если не геймдев, то во что еще есть смысл погрузиться?
Berkus
Berkus
придумать свой язык контрактов с уязвимостями, сделать его популярным, снять пенку и съебать на бали пожизненно
Ivan
лол
Berkus
Berkus
даже без предупреждений
Pavel
Berkus
ну дальше есть много опций
Samat
блокчейн 🤔
Anonymous
Ну плюсы же не только в игровых движках и в том-что-нельзя-называть
alekum
И умереть от передоза счасья
Vsevolod
уж лучше, чем от водки и от простуд
Berkus
язык мощный, можно всё
Anonymous
Igor
Andrey
job_ уже rvalue
Egor
Egor
job_ уже rvalue
http://thbecker.net/articles/rvalue_references/section_05.html
Andrey
там копикоструктор только
Andrey
был бы мув, был бы рвалью
Andrey
push_back может в рвалью
Andrey
так что там все мувится
Andrey
посмотри на вывод, адреса совпадают для take и execute