fork download
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. template <typename T>
  6. class vector {
  7. int size_arr;
  8. T * vec = new T;
  9. public:
  10. vector(/*int _size*/) {
  11. vec = new T[0];
  12. size_arr = 0;
  13. };
  14. ~vector() {
  15. size_arr = 0;
  16. delete[] vec;
  17. };
  18. vector(vector &v) {
  19. vec = new T[v.size()];
  20. memcpy(vec, v.vec,v.size() * sizeof(T));
  21. size_arr = v.size();
  22. }
  23. void push_back(T data) {
  24. T *temp = new T[size_arr + 1];
  25. for (int i = 0; i < size_arr; i++)
  26. temp[i] = vec[i];
  27. temp[size_arr] = data;
  28. size_arr++;
  29. delete[] vec;
  30. vec = temp;
  31. };
  32. void push_front(T data){
  33. int j;
  34. T *temp = new T[size_arr + 1];
  35. for ( j = size_arr; j >= 0;j--) {
  36. temp[j + 1] = vec[j];
  37. }
  38. temp[0] = data;
  39. delete[] vec;
  40. vec = temp;
  41. size_arr++;
  42. };
  43. void insert(int index, T data) {
  44. int j;
  45. T *temp = new T[size_arr + 1];
  46. for (int i = 0; i < size_arr ;i++)
  47. temp[i] = vec[i];
  48. for (int i = 0; i < size_arr;i++) {
  49. if (i == index) {
  50. for ( j = size_arr; j >=i;j--) {
  51. temp[j+1] = vec[j];
  52. }
  53. temp[j + 1] = data;
  54. delete[] vec;
  55. vec = temp;
  56. size_arr++;
  57. }
  58. }
  59. };
  60. void pop() {
  61. T *temp = new T[size_arr - 1];
  62. for (int i = 0; i < size_arr-1;i++)
  63. temp[i] = vec[i];
  64. size_arr--;
  65. delete[] vec;
  66. vec = temp;
  67. };
  68. void Delete(int index)
  69. {
  70. T *temp = new T[size_arr - 1];
  71. for (int i = 0; i < index;i++)
  72. temp[i] = vec[i];
  73. for (int i = 0; i < size_arr;i++) {
  74. if (i == index) {
  75. for (int j = i; j < size_arr-1;j++) {
  76. temp[j] = vec[j + 1];
  77. }
  78. size_arr--;
  79. delete[] vec;
  80. vec = temp;
  81. }
  82. }
  83. };
  84. int search(T data) {
  85. for (int i = 0; i < size_arr;i++) {
  86. if (vec[i] == data) {
  87. return i;
  88. }
  89. }
  90. return -1;
  91. };
  92. int size() { return size_arr; };
  93. };
  94.  
  95. int main() {
  96. vector <int>test;
  97. test.push_front(2);
  98. test.push_front(3);
  99. test.push_back(0);
  100. test.push_back(-1);
  101. test.insert(2, 2);
  102. test.pop();
  103.  
  104. vector <int > test1{test};
  105. test1.pop();
  106.  
  107. }
Success #stdin #stdout 0s 4288KB
stdin
Standard input is empty
stdout
Standard output is empty