Advertisement
scherbakovss

Template class array

Nov 14th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. // ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h"
  5.  
  6. #include<iostream>
  7. #include<time.h>
  8. using namespace std;
  9.  
  10. template <typename T>
  11. struct Elem
  12. {
  13. T *mass;
  14. int razmer;
  15. Elem * next, *prev;
  16. };
  17.  
  18. template <typename T>
  19. class Array
  20. {
  21. Elem<T> * Head, *Hvost;
  22. int Count;
  23. int size;
  24. public:
  25. Array();
  26. Array(int);
  27. Array(const Array&);
  28. ~Array();
  29. void Getsize();
  30. void SetSize(int size, int grow);
  31. void GetUpperBound();
  32. bool IsEmpty();
  33. void FreeExtra();
  34. void RemoveAll();
  35. void GetAt(int pos);
  36. void SetAt(int pos);
  37. Array &operator[](const Array&);
  38. Array& operator=(const Array&);
  39. void Add();
  40. void Append(const Array&);
  41. void GetData();
  42. void InsertAt(int pos);
  43. void RemoveAt(int pos);
  44. void Show(const Array&);
  45. };
  46. template <typename T>
  47. Array<T>::Array()
  48. {
  49. Count = 0;
  50. Head = Hvost = NULL;
  51. size = 0;
  52. }
  53. template <typename T>
  54. Array<T>::Array(int n)
  55. {
  56. Elem<T> *temp;
  57. temp->mass = new int[n];
  58. temp->razmer = n;
  59. for (int i = 0; i<n; i++)
  60. temp->mass[i] = rand() % 20;
  61. Count = 0;
  62. Head = Hvost = NULL;
  63. size = 0;
  64. }
  65. template <typename T>
  66. Array<T>::Array(const Array &N)
  67. {
  68. Elem<T> *temp = N.Head;
  69. while (temp != 0){
  70. AddHvost(temp->mass);
  71. temp = temp->next;
  72.  
  73. }
  74. }
  75. template <typename T>
  76. void Array<T>::Show(const Array&N)
  77. {
  78. Elem<T> *temp = N.Head;
  79. while (temp != 0){
  80. for (int i = 0; i<temp->razmer; i++)
  81. cout << temp->mass << " ";
  82. temp = temp->next;
  83.  
  84. }
  85. }
  86. int main()
  87. {
  88. setlocale(LC_ALL, "rus");
  89. int num; // размер массива
  90. cout << "Ведите количество элементов стека: " << endl;
  91. cin >> num; // получение от пользователя размера массива
  92.  
  93. Array <int> myArray(num);
  94. myArray.Add();
  95. myArray.Append(num);
  96. myArray.FreeExtra();
  97. myArray.GetAt(0);
  98. myArray.GetData();
  99. myArray.Getsize();
  100. myArray.GetUpperBound();
  101. myArray.InsertAt(2);
  102. myArray.IsEmpty();
  103. myArray.Show(num);
  104. system("pause");
  105. return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement