Kselax.ru

Hacker Kselax — the best hacker in the world

Menu
  • Блог
  • Контакты
  • wp plugin генератор
  • Русский
    • Русский
    • English
Menu

Класс List.

Posted on 21 июня, 201324 июня, 2013 by admin

Реализуйте и оттестируйте работу некоторого списка, выполненного в духе стандартного типа list.Я небольшой списочек сделал. В общем я сделал не со всеми функциями, просто лень добавлять все функции, какой сделал такой сделал, вот файл list.h:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//ob69vlenie list
#ifndef LIST_H
#define LIST_H
 
#include <iostream>
using std::cout;
using std::endl;
 
template<class T>
class list
{
public:
typedef T type_data;
typedef size_t size_type;
typedef T* iterator;
//конструктор по умолчанию
list():size_t(0){}
//добавить элемент в конец списка
void push_back(type_data n);
//доступ к последнему элементу
type_data& back();
//доступ к первому элементу
type_data& front();
//добавление в начало списка
void push_front(type_data n);
//вывод размера
size_type size(){return size_t;}
//возврат указателя на первый элемент
iterator begin(){return &mass[0];}
//возврат указателя на элемент за последним
iterator end(){return &mass[size_t];}
private:
type_data* mass;
size_type size_t;
};
 
//добавить элемент в конец списка
template<class T>
void list<T>::push_back(type_data n)
{
type_data* temp=mass;
mass=new type_data[size_t+1];
for(int i=0;i<size_t;i++)
mass[i]=temp[i];
mass[size_t++]=n;
}
//доступ к последнему элементу
template<class T>
typename list<T>::type_data& list<T>::back()
{
return mass[size_t-1];
}
//доступ к первому элементу
template<class T>
typename list<T>::type_data& list<T>::front()
{
return mass[0];
}
//добавление в начало списка
template<class T>
void list<T>::push_front(type_data n)
{
type_data* temp=mass;
mass=new type_data[size_t+1];
mass[0]=n;
for(int i=0,j=1;i<size_t;i++,j++)
mass[j]=temp[i];
size_t++;
}
 
#endif

Файл main.cpp:

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
#include <iostream>
using std::cout;
using std::endl;
 
#include "list.h"
 
int main()
{
cout <<"hellow gacpada"<<endl;
list<int> l;
l.push_back(4);
l.push_back(3);
cout <<l.back()<<endl;
cout <<l.front()<<endl;
l.push_front(10);
cout <<l.front()<<endl;
cout <<l.back()<<endl;
cout <<"l.size()= "<<l.size()<<endl;
 
list<int>::iterator it;
for(it=l.begin();it!=l.end();++it)
cout <<*it<<' ';
cout <<endl;
 
return 0;
}

[youtube]http://www.youtube.com/watch?v=U4etVZcuFsg[/youtube]

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Рубрики

  • C++ (293)
  • JavaScript (1)
  • linux (1)
  • MFC (39)
  • node.js (2)
  • React (3)
  • vBulletin (5)
  • Visual Studio (9)
  • wordpress (18)
  • Разное (29)

Метки

Ajax bootstrap CentOS CLI expressjs FormData GDlib google Invisible reCAPTCHA JWT media MFC php react-router-dom redux repository wordpress RTTI STL vBulletin vector Visual Studio WINAPI wordpress wp-plugins XMLHttpRequest Двоичное дерево Задачи С++ Игры С++ Исключения С++ О-большое Операторы_С++ Перегрузка операторов С++ Поиск С++ Потоки Проектирование_С++ С++ Типы_С++ Типы С++ Шаблоны С++ библиотеки локализация макросы С++ сортировка С++

Свежие комментарии

  • ExchiNuGs к записи Программка для заполнения форума на vBulletin 3.8.7
  • RA3PKJ к записи visual C++, создание диалоговых окон.
  • admin к записи Как удалить изображение из google
  • Shakanris к записи Программка для заполнения форума на vBulletin 3.8.7
  • костя к записи visual C++, создание диалоговых окон.
©2021 Kselax.ru Theme by ThemeGiant