Форум программистов, компьютерный форум CyberForum.ru

Шаблоны.Список - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ какая функция считает только цифры.ТЕМА: «Работа со строками в С++» http://www.cyberforum.ru/cpp-beginners/thread93751.html
Практическая работа №8 ТЕМА: «Работа со строками в С++» Цель: изучить работу по обработке текстовых строк в С++. Тип урока: практическая работа. Количество часов: 4. Необходимое программное обеспечение: Visual Studio 6 Ent, MS Word. Необходимые сведения из теории: символьные строки в С++; строка как параметр функции;
C++ strcpy/strcpy_s Добрый вечер! Есть класс (упрощенно): class const_string { public: const_string(char const* s) { strcpy(str, s); / strcpy_s(str, strlen(s), s); http://www.cyberforum.ru/cpp-beginners/thread93727.html
C++ Метод ньютона для СНУ
Привет всем!!!)) Помогите пожалуста перевести программу з матлаба на С++. Вот исходник матлаба и функции(обратна, транспонирование) которые уже есть. Помогите пожалуста завтра здача курсовой, а у меня нечего не готово!!((( матлабовська прога function Z=F(X) function W=JF(X) x=X(l);y=XB); x=X(1); y=X(2); ...
Оператор if C++
Почему у меня оператор Else выдает как ошибку(Е2054 Misplaced else)? и в операторе if не нравится как я записал if((s==a)&&(f==p)); ? #include<vcl.h> #include<iostream.h> void main(void) { const a=33,p=222222; int s,f; cout<<"vvedite ceriu pasporta- "; cin>>s; cout<<"vvedi nomer- ";
C++ динамический массив http://www.cyberforum.ru/cpp-beginners/thread93685.html
1) Дан массив из 6 элементов типа целое без знакаю Сформировать указатель на этот массив и обратится ко второму элементу массива разными способами 2) Выделить память для трёхмерного массива в . Изменить индексацию массиватак, чтобы начальный элементимел индексы -1, -2, -3
C++ вопрос, наверное, по потокам вот есть программка, работающая с текстовым файлом, первые два символа которого хранят длинну строки. программыа должна вывести всю строку (включая первые два символа) #include <iostream> #include <string> #include <fstream> using namespace std; int main() { ifstream fin("input.txt"); if (!fin) { cout<<"fail input.txt not found"<<endl; return 1; подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.02.2010, 11:09     Шаблоны.Список
TList::TList(TList &List);
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
TList::TList(TBase Value) // Копирующий конструктор
{
 TList *Sourcer=&List; // Указатель на источник
 TList *Target=(TList*)(&Info); // Указатель на приёмник
  while (Source) // Пока не вышел из источника
  {
   Target->info=Sourcer->Info; // Копирую данные
   Sourcer=Sourcer->Next; // Переход к следущему элементу источника
   if (Sourcer) // Если она существует
   {
    Target->Next=new TList; // Создаю элемент приёмника
    Target=Target->Next; // Перехожу к нему
   }
  }
}


Добавлено через 6 минут
TBase TList::TList(TBase Value);
C++
1
2
3
4
5
6
7
8
9
10
11
TBase TList::&Search(TBase  Value) // Поиск
{
 TList Point;  // Указатель
 for (Point=this; Point; Point=Point->Next) // цикл поиска
 {
  if (Value==Point->Info) // Если нашел
  {
   return Point->Value; // Возврат ссылки
  }
 }
}


Добавлено через 4 минуты
TBase TList::&operator[](int Index);
TBase TList::&operator[](int Index) // Поиск по номеру
{
int i; // Номер текущего
TList *Point; // Указатель
for (i=1, Point=this; i<Index; ++i, Point=Point->Next);// Цикл поиска
return Point->Info; // возвращаем результат
}


Добавлено через 53 секунды
TBase TList::&Begin ();
C++
1
2
3
4
5
6
7
8
TBase TList::&Begin () // List.Begin()=Value;
{
 TList *Temp=Next; // Буфер
 Next=new TList; // Создаю новый
 Next->Next=Temp; // После нового второй
 Next->info=Info; // Нвчало копирую в новый
 return Info;
}


Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template <TBase> TList
{
 protected:
  TBase  Info;
  TList *Next;
 public:
   TList ();
   TList (TBase Value);
   TList (TList &List);
   TBase &Search(TBase  Value);
   TBase &operator[](int Index);
   TBase &Begin ();
   TBase &End ();
   void Show(); // Выводит в дефолный поток
  TBase &Insert (int Index);
  void DeleteFirst ();
  void DeleteLast ();
  void Delete (int Index);
  ~TList ();
};
Добавлено через 2 минуты
TBase TList::&End ();
C++
1
2
3
4
5
6
7
8
TBase TList::&End ()
{
 TList *Point; // Указатель
 for (Point=this; Point->Next; Point=Point->Next); //Ищу конец
 Point->Next=new TList; // Сщоздаю новый
 Point->Next=NULL; // Новый последний
 return Point->Info; // Возвращаю ссылку
}


Добавлено через 2 минуты
TBase TList::&End ();
C++
1
2
3
4
5
6
7
8
9
10
11
TBase TList::&Insert (int Index)
{
 int I;
 TList *Point; // Указатель
 TList *Temp; // Буфер
 for (i=1, Point=this; i<Index; ++i, Point=Point->Next); //Ищу конец
 Temp=Point->Next; // Запоминаю следующий
 Point->Next=new TList; // Создаю новый
 Point->Next=Temp; // После нового следующий
 return Point->Info; // Возвращаю ссылку
}


Добавлено через 2 минуты
void TList::DeleteFirst ();
C++
1
2
3
4
5
void TList::DeleteFirst ()
{
 info=Next->Info; // Копирую второй в первый
 Next=Next->Next; // Второй становится первым
}


Добавлено через 4 минуты
void TList::DeleteLast ();
C++
1
2
3
4
5
6
void TList::DeleteLast ()
{
 TList *Point; // Указатель
 for (Point=this; Point->Next; Point=Point->Next); // Ищу предпоследний
 delete Point->Next; // Удаляю последний
}


Добавлено через 6 минут
void TList::Delete (int Index);
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void TList::Delete (int Index)
{
 int i;
 TList *Point; // Указатель
 TList *Temp; // Указатель
 if (Index==0) // Если удаляем первый
 {
  DeleteFirst(); // Так первый и удаляем
 }
 else // Иначе
 {
  for (i=2, Point=this; i<Index; ++i, Point=Point->Next);// ищем предыдущий
  Temp=Point->Next->Next; // Запоминаем следующий
  delete Point->Next; // Удаляем
  Point->Next=Temp; // Следующий на место этого
 }
}


Добавлено через 2 минуты
TList::~TList();
C++
1
2
3
4
5
6
7
8
9
10
TList::~TList()
{
 TList *Point;
 TList *Temp;
 for (Point=this; Point; Point=Temp)
 {
 Temp=Point
  delete Point;
 }
}


Добавлено через 1 минуту
Кажется так. А чтоб целиком, тебе ещё интерфейс нужен. Но объявить объект надо, кажется, так:
C++
1
TList <int> List;
 
Текущее время: 05:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru