
Kirill
14.10.2016
13:42:09
Дяденька Саттер учил не изобретать велосипеды, если есть реализация в стандартной библиотеке.

Andrey
14.10.2016
13:42:22
:D

Kirill
14.10.2016
13:42:30
?

Google

Kirill
14.10.2016
13:42:35
Да я не жалуюсь
Мне просто интересно

Andrey
14.10.2016
13:43:02
и захочется писать велосипед потом, под частную задачу ) Если по памяти - критично )

Kirill
14.10.2016
13:43:44

Andrey
14.10.2016
13:44:04

Aldar
14.10.2016
13:44:15
будет гордость за то что недоступно всяким джавистам питонистам и тем более джаваскриптерам

Andrey
14.10.2016
13:44:15
с калькулятором в руке )

Kirill
14.10.2016
13:44:34

Andrey
14.10.2016
13:44:37

Aldar
14.10.2016
13:44:57
фронтендер ж не программист

Andrey
14.10.2016
13:45:30

Aldar
14.10.2016
13:45:49
а верстальщик вообще даже не человек!

Google

Andrey
14.10.2016
13:46:12
js - весьма тонкая штука )

Aldar
14.10.2016
13:46:38
но фронтенд это весело, ничего не скажешь

Andrey
14.10.2016
13:46:41
:D

Aldar
14.10.2016
13:47:33
бекенд на плюсах О_о

Kirill
14.10.2016
13:47:38
А фронтендер задумывается о том, сколько разных размеров дисплея у смартфонов существует?

Andrey
14.10.2016
13:47:46

Kirill
14.10.2016
13:47:48
Или это уже не для людей?

Aldar
14.10.2016
13:47:59

Alex Фэils?︙
14.10.2016
13:48:04
нормпльный да

Aldar
14.10.2016
13:48:07
ну и фронтендер тоже
?
бекенд тоже можно было на жс
в 90% случаев)

Andrey
14.10.2016
13:49:09

Aldar
14.10.2016
13:50:22

Andrey
14.10.2016
13:50:35

Stanislav
14.10.2016
13:53:37

Andrey
14.10.2016
13:53:44

Kirill
14.10.2016
14:09:32
Проверил unordered_set на unsigned long. Файл 382 МБ потребовал 2939 МБ ОЗУ. :D

Stanislav
14.10.2016
14:14:14
а обычный set ?

Google

Kirill
14.10.2016
14:17:23
2289 МБ :D
Чуть получше
При том, что set заранее ничего не выделяет, т.е. память целиком используется.
Размер больше в т.ч. из-за накладных расходов на каждый элемент. Для примитивных типов связный список дает накладные расходы на элемент больше, чем сам элемент занимает.
То биш если хранить большое количество относительно больших объектов, то разница будет не такая большая
Нужно проверить на каких-то объектах размером, скажем, 256 байт.
Проверил std::unordered_set<std::array<char,256> >
442 МБ
Вывод прост: чем меньше размер элемента, тем менее эффективны по памяти эти контейнеры.
Нужно было сразу догадаться.

Andre
14.10.2016
14:43:56
Reindex.. please wait
Reindex.. please wait

Kirill
14.10.2016
14:45:32
Да не в этом дело

Kirill
14.10.2016
14:46:45
Я изначально проверял на малых строках (17 байт). На 64 разрядной системе указатель занимает 8 байт. В том же map на каждый элемент нужно три указателя. В результате, накладные расходы больше размера элемента.
А в хеш-таблице, допустим, вектор списков. Список, даже если в нем один элемент, хранит несколько указателей.

Andre
14.10.2016
14:49:36

Andrey
14.10.2016
14:53:42
самый главный закон разработки )

Square
14.10.2016
14:54:28
У них и аллокатор толковый и в контейнеры его пихать можно стдшные

Admin
ERROR: S client not available

Google

Stanislav
14.10.2016
15:00:43

Square
14.10.2016
15:01:03

Andre
14.10.2016
15:03:53
Reindex.. please wait

TheRainwildsKeeper
14.10.2016
16:36:39

Stanislav
14.10.2016
17:38:41
хм, а если сделать отсортированный вектор, а рядом мапу положить в которую пихать std::hash и id из вектора? )
хотя можно и не сортировать
время обработки только возможно увеличится, но на потребление памяти я бы посмотрел

Kirill
14.10.2016
17:51:43
Пока другим занят.

Alex Фэils?︙
14.10.2016
17:56:24

Stanislav
14.10.2016
18:30:37

Alex Фэils?︙
14.10.2016
18:31:05

Stanislav
14.10.2016
18:31:27

Dumitru
15.10.2016
10:55:17
всем привет, есть небольшой вопрос по поводу наследования
есть класс Base, у этого класа есть строка и метод которы её меняет
есть класс Child, наследует Base. Child вызывает метод который меняет строку, но вывести её не получается (она пустая)
я подозоеваю что у нас две копии этой строки, но немного запутался
http://ideone.com/AH41GI
что может быть?

Artem
15.10.2016
10:59:13
Метод get не виртуальный

Dumitru
15.10.2016
11:02:03
о есть!
я чет начал делать метод write виртуальным
спасибо!

Dmitry
15.10.2016
11:22:51
а можно ли как-то красивее сделать установку нескольких бит подряд?
вметсто
par_flags |= 1 << 2;
par_flags |= 1 << 3;
par_flags |= 1 << 4;
и вместо
par_flags |= 1 << 2;
par_flags |= 1 << 4;
через
#define BITS_TO_SET 0x24
par_flags |= BITS_TO_SET;
?

ovf
15.10.2016
12:23:10
а в чём вопрос? тебе сказать значения для BITS_TO_SET?

Dmitry
15.10.2016
12:23:24
в красоте

ovf
15.10.2016
12:23:49
ответ: par_flags|=0x14 вполне красиво

Google

Alex Фэils?︙
15.10.2016
12:35:48
enum flags {
flag_1 = 0x1,
flag_2 = 0x2,
flag_3 = 0x4
};
uint32_t flags = flag_1 | flag_3;

Dmitry
15.10.2016
12:56:57
посмотрел как сделано в драйвере и сделал по подобию.
(это я первый патч в апстрим готовлю)

Alex Фэils?︙
15.10.2016
13:00:24
Как там?

Dmitry
15.10.2016
13:02:09
ну в драйвере ядра. такие битовые константы через define определены

Alex Фэils?︙
15.10.2016
13:03:07
еще вариант
но енам лучше

ovf
15.10.2016
14:38:12
в линуксе есть ещё такое: https://www.kernel.org/doc/htmldocs/kernel-api/ch02s03.html
но правильно делать так, как в окружающем тебя коде, да