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

Шаблоны классов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Транспонировать матрицу http://www.cyberforum.ru/cpp-beginners/thread415750.html
Помогите с заданием: "Транспонировать матрицу и вывести на экран элементы главной диагонали и диагонали, располагающейся под главной".
C++ решение задачи,конвертация числа в строку. дана строка символов,состоящая из произвольных десятичных цифр,разделенных пробелами.вывести на экран числа этой строки в порядке возрастания их значений. вот код: #include <iostream.h> #include <string.h> #include <stdio.h> #include <stdlib.h> http://www.cyberforum.ru/cpp-beginners/thread415710.html
обьясните программу по строчкам(многомерный массив) C++
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10. Найти сумму модулей элементов, расположенных выше главной диагонали. #include <iostream> #include <time.h> #include <conio.h> #define N 10 using namespace std; int main() { int a,k=0,x=0;
форматированный ввод C++
Есть строка вида: поле1\t поле2\tполе3\tполе4\n Обрабатываю её так: sscanf(Line, "%\t%\t%\t%\n", &str1, &str2, &str3, &str4); Всё нормально, если поля не пустые, иначе поля смещаются. Как правильно указать формат?
C++ условие задачи http://www.cyberforum.ru/cpp-beginners/thread415680.html
Ввести массив вещественных чисел. Найти и вывести номер элемента, для которого сумма разностей с соседними элементами максимальна. Для крайних элементов использовать циклическое замыкание. как вот это понять ? Для крайних элементов использовать циклическое замыкание.
C++ Длинная арифметика: найти разность между неотрицательными числами А и В Не могу решить задачу на С++ А-Б длинная арифметика Требуется найти разность между неотрицательными числами А и В. ВОТ КОД #include<iostream> #include<string> using namespace std; int main() { freopen("input.txt","r",stdin); подробнее

Показать сообщение отдельно
AvengerAlive
5 / 5 / 0
Регистрация: 30.07.2011
Сообщений: 257
23.12.2011, 19:46     Шаблоны классов
реализовал стек. хочу вставить шаблон. не получается. не компиллирует да и вообще куча ошибок. как эта штука работает?

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
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <iostream>
#include <conio.h>
using namespace std;
 
//typedef int T;
 
template <class T> class stack_elem
{
 public:
  T value;
  stack_elem *prev;
};
 
template <class T> class stack
{
 private:
  stack_elem <T> *head;
 public:
  stack() { head=NULL; };
  ~stack();
  stack(const stack &y);
  bool empty();
  void push(T val);
  bool pop();
  bool show();
};
 
stack::~stack()
{
 stack_elem *pos; 
 pos=head; 
 while (head) 
  { cout <<"!" << endl;
   head=pos->prev; 
   delete pos; 
   pos=head; 
  }
}
 
stack::stack(const stack &y)
{
 stack_elem *pos,*new_pos,*y_pos;
 head=new stack_elem;
 if (!y.head) head=NULL;
 else
  {
   head->value=y.head->value;
   head->prev=NULL;
   y_pos=y.head->prev;
   new_pos=head;
   while (y_pos)
    {
     pos=new stack_elem;
     pos->value=y_pos->value;
     new_pos->prev=pos;
     new_pos=pos;
     new_pos->prev=NULL;
     y_pos=y_pos->prev;
    }
  }
}
 
bool stack::empty()
{
 return (!head) ? true : false;
}
 
void stack::push(T val)
{
 stack_elem *pos;
 pos=new stack_elem;
 pos->value=val;
 if (!head) { head=pos; pos->prev=NULL; }
 else { pos->prev=head; head=pos; }
}
 
bool stack::pop()
{
 stack_elem *pos;
 if (!head) return false;
 else { pos=head; head=head->prev; delete pos; }
 return true;
}
 
bool stack::show()
{
 stack_elem *pos;
 if (empty()) return false;
 pos=head;
 while (pos->prev) { cout << pos->value << " "; pos=pos->prev; }
 cout << pos->value << endl;
 return true;
}
 
int main()
{
 stack <int> ob;
 ob.push(1);
 ob.push(2);
 ob.push(3);
 ob.push(4);
 ob.push(5);
 stack <int> qw=ob; 
 qw.show();
 return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru