Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Cooper
1

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

29.10.2009, 13:22. Показов 1372. Ответов 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 ]; 
    }
};
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2009, 13:22
Ответы с готовыми решениями:

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

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

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

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

1
kvasya
14.01.2010, 23:45 2
В первом разве обычная рекурсия не сгодится?
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2010, 23:45

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

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

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

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


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

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

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