0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 28
1

Презентация собственной реализации Разделяемого Указателя (shared_ptr)

08.05.2017, 04:08. Показов 1225. Ответов 2

Author24 — интернет-сервис помощи студентам
Пришлось самому реализовывать эквивалентный shared_ptr класс, так как на винде стала повреждена библиотека языка C. Времени на переустановку или копание в пакетном менеджере обновлений для исправления библиотеки для завоза в конечном итоге новой версии gcc не было.

Класс непотокобезопасный.

Тут с тестом, если кто-то знает, как можно еще протестить\оптимизировать, прошу отписать.
Вложения
Тип файла: rar shared_ptr.rar (127.9 Кб, 9 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2017, 04:08
Ответы с готовыми решениями:

Как определить тип указателя shared_ptr<T>?
Прошу не удалять, в с++ для начинающих не смогли мне ответить есть классы: class char_int { ...

Как сделать *_cast указателя shared_ptr<T>?
Хочу определять тип (например через dynamic_cast) указателя shared_ptr. (криво звучит но по...

Проверить правильность реализации умного указателя
? template&lt;class T&gt; class Auto_Ptr { public: Auto_Ptr(); explicit Auto_Ptr(T* alloc);...

Ошибка при реализации в создаваемом классе метода с аргументом в виде указателя на форму
Добрый день! Подскажете кто знает в чём может быть ошибка. Есть namespace WinForm в нём класс...

2
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
08.05.2017, 09:46 2
Лучший ответ Сообщение было отмечено SP_root как решение

Решение

код не такой большой, на форум выкладывай.

Добавлено через 6 минут
зачем в шаблонных параметрах RefT и PtrT?
они замечательно тайпдефаются.
а так я могу сделать так и получить кучу ошибок компиляции(или, что страшнее, не получить их):
C++
1
SharedPtr<int, double*, char&> ptr;
нет поддержки собственных делиторов.
нет makeShared.
1
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 28
08.05.2017, 15:05  [ТС] 3
sss

Добавлено через 3 часа 5 минут
Нашел еще несколько недоработок.
Думаю надо заменить базовый тип таблицы на vector, резервируя в нем достаточно много памяти (2^16 указателей, например) во время первого добавления записи, и хранить вместо указателей info_ в SharedPtr - индексы, чтобы был доступ за O(1)

Добавлено через 9 минут
Выше бред, нужна хеш-таблица, которая тоже в C++11
0
08.05.2017, 15:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2017, 15:05
Помогаю со студенческими работами здесь

Обработка текста, разделяемого на слова
Задание: Задан текст, содержащий произвольное количество строк, в которых отдельные слова могут...

Обработка текста, разделяемого на слова
Задан текст, содержащий произвольное количество строк, в которых отдельные слова могут разделяться...

Почему увеличение указателя на sizeof(тип) не тождественно инкременту этого же указателя?
Всем доброго дня.:) Можете обьяснить ,почему при инкриментировании указателя,его значение(адресс)...

Создание указателя на экземпляр класса, описанного после объявления указателя
Здравствуйте! Проблема в том, что нужно сделать так: class A{ public: B* b = nullptr; }; ...

Преобразование кода без указателя в код с использованием указателя
Правильно ли выполнил? Исходный код без указателя #include &lt;iostream&gt; #include &lt;cstdlib&gt;...

Как сделать функцию от указателя на класс и указателя на метод?
Не получается сделать функцию, параметрами которой являются указатель на класс и на метод....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru