Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. #include "Vector.h"
  2. #include <iostream>
  3.  
  4. template<class T>
  5. Vector<T>::Vector()
  6. {
  7. this -> size = 1;
  8. vec = new T[size];
  9. for (int i = 0; i < size; i++)
  10. {
  11. vec[i] = *new T;
  12. }
  13. }
  14.  
  15. template <class T>
  16. Vector<T>::Vector(int size)
  17. {
  18. this->size = size;
  19. vec = new T[size];
  20. for (int i = 0; i < size; i++)
  21. {
  22. vec[i] = *new T;
  23. }
  24. /*T x = T;
  25.  
  26. memset(vec, 0, size * sizeof(T));*/
  27. }
  28.  
  29.  
  30. template<class T>
  31. Vector<T>::Vector(Vector<T>& other)
  32. {
  33. /*if (vec != nullptr)
  34. delete[] vec;*/
  35. this->size = other.size;
  36. this->vec = new T[size];
  37. for (int i = 0; i < size; i++)
  38. {
  39. vec[i] = other.vec[i];
  40. }
  41. }
  42.  
  43.  
  44. template<class T>
  45. Vector<T>::~Vector()
  46. {
  47. //delete vec;
  48. }
  49.  
  50. template<class T>
  51. void Vector<T>::push(int i, T newItem)
  52. {
  53. if (i >= 0 && i < size)
  54. vec[i] = newItem;
  55. else
  56. throw exception("index out of range");
  57. }
  58.  
  59. template<class T>
  60. T Vector<T>::get(int index)
  61. {
  62. if (index >= 0 && index < size)
  63. return vec[index];
  64. else throw exception("index out of range");
  65. }
  66.  
  67. template<class T>
  68. Vector<T> Vector<T>::operator+(Vector<T>& other)
  69. {
  70. Vector<T> newVec(size+other.size);
  71. int i = 0;
  72. for (i;i < size; i++)
  73. newVec.push(i, vec[i]);
  74. for (i; i < other.size + size; i++){
  75. newVec.push(i, other.vec[i - size]);
  76. }
  77.  
  78. return newVec;
  79. }
  80.  
  81. template<class T>
  82. void Vector<T>::operator=(Vector<T>& other)
  83. {
  84.  
  85. size = other.size;
  86. vec = new T[size];
  87. for (int i = 0; i < size; i++)
  88. vec[i] = other.vec[i];
  89. }
  90.  
  91. template <class T>
  92. ostream & operator<<(ostream & out, const Vector<T>& vec)
  93. {
  94. out << "vector[size: " << vec.size << ", values: [";
  95. for (int i = 0; i < vec.size; i++)
  96. {
  97. out << vec.vec[i];
  98. if (vec.size - i > 1)
  99. out << ", ";
  100. }
  101. out << "]" << endl;
  102. return out;
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement