
Kirill
18.10.2016
18:36:33
Было три секции: общие вопросы по языку, многопоточность и алгоритмы.
С первыми двумя я справился, как мне кажется, отлично.
А с третьей облажался.
Во второй секции, кстати, надо было кроме теоретических вопросов написать shared_ptr

Google

Stanislav
18.10.2016
18:38:04

Kirill
18.10.2016
18:38:37
Что?

Artem
18.10.2016
18:39:18

Kirill
18.10.2016
18:39:58
Да что толку, если соображалка еще нужна.

Artem
18.10.2016
18:40:59
Очень много толку, соображалке нужны проработанные типовые решения для стандартных подзадач

Stanislav
18.10.2016
18:41:02
главное оценить сложность

Artem
18.10.2016
18:41:15
Из которых она будет строить итоговое решение

Stanislav
18.10.2016
18:41:45
а то вдруг у тебя там 6 вложенных циклов

Kirill
18.10.2016
18:43:04

Artem
18.10.2016
18:44:09
Конечно
Два бегунка

Google

Artem
18.10.2016
18:44:27
В книжке есть

Kirill
18.10.2016
18:44:53
Не представляю задачу, в которой это может понадобиться.

Artem
18.10.2016
18:45:54
Люди делают с графами много странных вещей

Kirill
18.10.2016
18:46:28
Не надо обощать односвязный список на граф. :)

Artem
18.10.2016
18:46:47
Почему? Метод обращается на граф
Обобщается

Kirill
18.10.2016
18:47:04
Как же?

Artem
18.10.2016
18:48:39
В смысле как? Ну при ветвлении идем во всех сыновей и менеджим много указателей сразу.

Kirill
18.10.2016
18:49:55
Т.е. количество указтелей будет постоянно расти?

Artem
18.10.2016
18:50:30
Ну да

Kirill
18.10.2016
18:52:34
И как же тут сложность оценить? Ведь она будет зависеть от связности графа.

kapkapbopoh
18.10.2016
18:55:49
Что ещё спрашивали?)

Kirill
18.10.2016
18:57:31
Ну еще была задача про случайный выбор из множества без повторов и с учетом приоритетов
Есть множество объектов типа T. Для каждого из них задан его приоритет в виде целого числа. Нужно случайно выбрать k элементов из него так, чтобы они не повторялись и так, чтобы учесть приоритеты.

Artem
18.10.2016
19:01:20
Приоритеты это что?
Вероятность, что элемент окажется в итоговой выборке?

Kirill
18.10.2016
19:03:45
Для каждого элемента задано число от 1 до 1000. Чем больше это число, тем больше должна быть вероятность его выбора.

Artem
18.10.2016
19:07:08
Типа складываем все приоритеты, тыкаем рандомно в число, берем попавший элемент, сдвигаем на его приоритет?

Kirill
18.10.2016
19:07:57
Что значит "сдвигаем на его приоритет"?

Google

Artem
18.10.2016
19:08:56
Храним позицию и сколько сдвинули, уменьшаем число

Kirill
18.10.2016
19:11:39
У меня уже голова ватная. :) Не соображаю. Я смог предложить дурацкое решение с созданием копий объектов согласно приоритету. Но у него очень плохая эффективность. А в итоге правильный ответ это построить дерево сумм приоритетов.

Artem
18.10.2016
19:13:45
И за логарифм обновлять типа, ну ок да
Подумаю, сводится ли мое решение к этому

Lev
18.10.2016
19:21:14
m_pchFileName
=)

grinchfox
18.10.2016
21:21:44
Ребят, никто последней студией не собирал thrift ?
Я просто не до конца понимаю какую версию openssl он хочет

Ned Ogl
19.10.2016
03:35:16
Нубский вопрос: в хедере объявлен шаблонный класс, почему я не могу в срр файле реализовать его конструктор?

Victor
19.10.2016
03:38:37
может в реализации надо убрать шаблонизаторы, те оставить их только в хидере
хотя я не увэвэен)

Ned Ogl
19.10.2016
03:38:55
в реализации как раз-таки нет шаблонизаторов

Ned Ogl
19.10.2016
03:38:58
надо попробовать
matrixlib.cpp:3:23: ошибка: некорректное использование имени шаблона «Matrix» без списка аргументов
template <typename T> Matrix::Matrix(int _rows, int _cols){}
народ, кто выручит выручит прогера-проходимца?

Stanislav
19.10.2016
04:01:10
проходимцев только за деньги

Ned Ogl
19.10.2016
04:04:08
ну, я самый бедный из проходимцев
короче, че делать с этой херотой? как нормально реализовать конструктор?
Вот код класса:
template <typename T> class Matrix
{
private:
int rows, cols;
T *data;
public:
Matrix(int _rows, int _cols);
~Matrix();
};

T3ch
19.10.2016
04:08:40
Шаблонный класс должен быть целиком в h файле, как declaration, так и definition

Google

Ned Ogl
19.10.2016
04:09:05
orly?
вот ведь обидно
а почему так? чем это обусловлено?

T3ch
19.10.2016
04:10:27
На момент компиляции компилятор ничего не знает о параметризации темплейта
А вот в конкретном месте, где будет определён Шаблонный параметр - компилятор сможет подставить параметр и скомпилять класс.

Ned Ogl
19.10.2016
04:12:45
хорошо, я не могу даже нормально объявить конструктор. чего он хочет? неважно даже, в одном файле или нет
или прям в классе реализовывать?

T3ch
19.10.2016
04:13:10
Нет, можно не в классе
Какая сигнатура конструктора в реализации вне класса? Скорее всего с этим проблема

Ned Ogl
19.10.2016
04:15:01
вот класс

Admin
ERROR: S client not available

Ned Ogl
19.10.2016
04:15:01
Вот код класса:
template <typename T> class Matrix
{
private:
int rows, cols;
T *data;
public:
Matrix(int _rows, int _cols);
~Matrix();
};
сигнатура такая же, точь-в-точь, копипаста
объявляю Matrix::Matrix(int _rows, int _cols){}

T3ch
19.10.2016
04:16:09
А темлейт куда делся?)

Ned Ogl
19.10.2016
04:16:13
ошибка: In file included from test.cpp:2:0:
./matrixlib.h:15:1: ошибка: некорректное использование имени шаблона «Matrix» без списка аргументов
Matrix::Matrix(int _rows, int _cols){}
^~~~~~

T3ch
19.10.2016
04:16:45
Ну, явно же ругается

Ned Ogl
19.10.2016
04:16:54
вот с темплейтом
я лично не вижу проблем

T3ch
19.10.2016
04:21:15
Заюзай реализацию прямо в классе, сейчас нет возможности проверить

Google

Ned Ogl
19.10.2016
04:25:18
а ларчик просто открывался

Nikolay
19.10.2016
04:45:46
Таки как он открылся? )

Egor
19.10.2016
04:57:06
Таки как он открылся? )
наверняка как-нибудь так:
template <typename T> class Matrix
{
private:
int rows, cols;
T *data;
public:
Matrix(int _rows, int _cols):
rows ( _rows )
, cols ( _cols )
{
data = new T[rows * cols ];
}
~Matrix()
{
delete[] data;
}
};


Ned Ogl
19.10.2016
05:59:07
Таки как он открылся? )
template <class T>
Matrix<T>::Matrix(int _rows, int _cols):
rows(_rows),
cols(_cols){
data = new T[rows*cols];
}
Забыл <T> после Matrix
Новый вопрос: есть ли способ разрушить объект на момент создания? То есть, в рантайме вызывается конструктор, который проверяет корректность входных данных, и если встречается ошибка, нужно порушить объект. Из ит риал?
Или только аварийная остановка программы?
Или это вообще bad style?

Alex Фэils?︙
19.10.2016
06:16:40
throw

Dumitru
19.10.2016
06:16:43

Ned Ogl
19.10.2016
06:17:19
Кстати, почему парятся людие о засранной памяти, delete, итд, если система отлавливает эти ситуации и при завершении программы попросту помещает страницы в список свободных?

Dumitru
19.10.2016
06:18:34

Andrey
19.10.2016
06:19:00

Alex Фэils?︙
19.10.2016
06:19:00
Блядь. Это супапро

Ned Ogl
19.10.2016
06:19:48
Блядь. Это супапро
Я всё понимаю, но я задаю вопрос более широкий, чем "зачем new delete". Это уже из области моего любимого osdev;)

Alex Фэils?︙
19.10.2016
06:21:07

Ned Ogl
19.10.2016
06:21:55

Плюшка
19.10.2016
06:23:13
А ещё жава тормозная