Cooper

Написать шаблон умного указателя для массива

29.10.2009, 13:22. Показов 1578. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день уважаемые!

Не могу решить 2 задачи!

1.
У вас есть многосвязный список‚ заданный следующим образом:
C
1
2
3
4
5
6
7
struct list_item
{
list_item *next; // указатель на следующий элемент списка 
 
list_item *rand; // указатель на произвольный элемент списка 
 
};
list_item *first; // указатель на первый элемент списка
Напишите код (с комментариями)‚ который создаст копию данного списка при следующих требованиях:
• время создания копии должно линейно зависеть от длины списка;
• нельзя использовать дополнительную память пропорциональную длине списка(т.е. дополнительные массивы‚ хэши‚ и т.п.)‚ кроме той памяти которая выделяется на создание копии.

2.
Написать шаблон умного указателя для массива (auto_ptr_array).
Пример использования и тестовые сценарии:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
typedef auto_ptr_array< int > TIntArr; 
// пример 1 
{ 
    // размер НЕ ПЕРЕДАЕТСЯ! 
    TIntArr arr( new int[ 10 ] );  
    // есть операции для доступа по индексу 
    arr[ 1 ] = 4; 
    int t = arr[ 0 ]; 
}   // при выходе за scope массив удалается 
// пример 2 
TIntArr GetArray() 
{ 
    TIntArr arr( new int[ 2 ] );  
    arr[ 0 ] = 1; 
    arr[ 1 ] = 1; 
    return arr;  
    // т.е. должны быть правильные конструкторы копирования 
} 
// пример 3 
class CA 
{ 
    TIntArr m_arr; 
public: 
    void DoSomething() const  // ключевая особенность - const 
    { 
       int t = m_arr[ 0 ]; 
    }
};
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2009, 13:22
Ответы с готовыми решениями:

Ошибка умного указателя для формы
Приветствую. В хедере главной форме объявляю умный указатель на вторую форму: private: // User declarations std::unique_ptr...

Не выводится сообшения от деструктора для умного указателя
#ifndef Shared_ptr_H #define Shared_ptr_H template&lt;class T&gt; class shared_ptr { private: struct storage { T*...

Реализация умного указателя
Добрый вечер. Сегодня с умным указателем поиграться. Написал обгортку : #pragma once template &lt;typename T&gt; class UniquePtr...

1
kvasya
14.01.2010, 23:45
В первом разве обычная рекурсия не сгодится?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2010, 23:45
Помогаю со студенческими работами здесь

Доступ к полю умного указателя
Привет. Реализовал умный указатель. Появилась проблема: Если обращаться через перегруженный -&gt;(селектор) к объекту класса...

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

Использование умного указателя std::weak_ptr
Есть вот такой код иерархии классов. Нужно в последнем классе list, вместо динамического массива compos *arr, реализовать динамический...

Как привести тип умного указателя к указателю на void?
Изучаем WinAPI, необходимо выполнить задание: Написать программу, которая в одном потоке сохраняет в векторе структуры PROCESSENTRY32,...

Нужно написать шаблон для типов массива int, float
Нужно написать шаблон для типов массива int, float, а именно сортировка элементов массива в порядке возрастания методом выборки.


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

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

Новые блоги и статьи
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru