Guest User

Untitled

a guest
Jun 5th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. template<typename T>
  4. class Denamiceski {
  5. T * massa;
  6. int kalich;
  7. int vsego;
  8. public:
  9. Denamiceski(int elementovSnachale) {
  10. if (elementovSnachale <= 1) elementovSnachale = 1;
  11. kalich = elementovSnachale;
  12. massa = new T[kalich];
  13. vsego = 0;
  14. }
  15. Denamiceski() {
  16. kalich = 1;
  17. massa = new T[kalich];
  18. vsego = 0;
  19. }
  20. ~Denamiceski() {
  21. vsego = 0;
  22. kalich = 0;
  23. delete [] massa;
  24. }
  25. T operator[] (int index) {
  26. if (index < 0 || index > kalich) return 0;
  27. return massa[index];
  28. }
  29. void dobavka(T elementus) {
  30. ++vsego;
  31. if (vsego > kalich) {
  32. kalich*=2;
  33. T * novii = new T[kalich];
  34. for (int i=0; i<vsego-1; ++i) {
  35. novii[i] = massa[i];
  36. }
  37. delete [] massa;
  38. massa = novii;
  39. }
  40. massa[vsego-1] = elementus;
  41. }
  42. void ubit(int index) {
  43. if (index >= 0 && index < vsego) {
  44. --vsego;
  45. for (int i=index; i<vsego; ++i) {
  46. massa[i] = massa[i+1];
  47. }
  48. }
  49. tyCheSukaTyCheGdeMoyaPamyat111();
  50. }
  51. void tyCheSukaTyCheGdeMoyaPamyat111() {
  52. if (vsego < kalich/2) {
  53. kalich /= 2;
  54. T * novii = new T[kalich];
  55. for (int i=0; i<vsego; ++i) {
  56. novii[i] = massa[i];
  57. }
  58. delete [] massa;
  59. massa = novii;
  60. }
  61. }
  62. int razmer() { return vsego; }
  63. };
  64.  
  65.  
  66. int main() {
  67. //TODO: ispolzui strochki zamesta inta, karochi
  68. Denamiceski<int> massiv;
  69. massiv.dobavka(1);
  70. massiv.dobavka(2);
  71. massiv.dobavka(3);
  72. massiv.dobavka(4);
  73. massiv.dobavka(5);
  74. massiv.dobavka(6);
  75. massiv.ubit(0);
  76. massiv.ubit(1);
  77. massiv.dobavka(7);
  78.  
  79. for (int i=0; i<massiv.razmer(); ++i) {
  80. printf("%d\n", massiv[i]);
  81. }
  82.  
  83. }
Advertisement
Add Comment
Please, Sign In to add comment