Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- template<typename T>
- class Denamiceski {
- T * massa;
- int kalich;
- int vsego;
- public:
- Denamiceski(int elementovSnachale) {
- if (elementovSnachale <= 1) elementovSnachale = 1;
- kalich = elementovSnachale;
- massa = new T[kalich];
- vsego = 0;
- }
- Denamiceski() {
- kalich = 1;
- massa = new T[kalich];
- vsego = 0;
- }
- ~Denamiceski() {
- vsego = 0;
- kalich = 0;
- delete [] massa;
- }
- T operator[] (int index) {
- if (index < 0 || index > kalich) return 0;
- return massa[index];
- }
- void dobavka(T elementus) {
- ++vsego;
- if (vsego > kalich) {
- kalich*=2;
- T * novii = new T[kalich];
- for (int i=0; i<vsego-1; ++i) {
- novii[i] = massa[i];
- }
- delete [] massa;
- massa = novii;
- }
- massa[vsego-1] = elementus;
- }
- void ubit(int index) {
- if (index >= 0 && index < vsego) {
- --vsego;
- for (int i=index; i<vsego; ++i) {
- massa[i] = massa[i+1];
- }
- }
- tyCheSukaTyCheGdeMoyaPamyat111();
- }
- void tyCheSukaTyCheGdeMoyaPamyat111() {
- if (vsego < kalich/2) {
- kalich /= 2;
- T * novii = new T[kalich];
- for (int i=0; i<vsego; ++i) {
- novii[i] = massa[i];
- }
- delete [] massa;
- massa = novii;
- }
- }
- int razmer() { return vsego; }
- };
- int main() {
- //TODO: ispolzui strochki zamesta inta, karochi
- Denamiceski<int> massiv;
- massiv.dobavka(1);
- massiv.dobavka(2);
- massiv.dobavka(3);
- massiv.dobavka(4);
- massiv.dobavka(5);
- massiv.dobavka(6);
- massiv.ubit(0);
- massiv.ubit(1);
- massiv.dobavka(7);
- for (int i=0; i<massiv.razmer(); ++i) {
- printf("%d\n", massiv[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment