Форум программистов, компьютерный форум CyberForum.ru

Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент - C++

Восстановить пароль Регистрация
 
dimk
0 / 0 / 0
Регистрация: 28.06.2014
Сообщений: 11
28.06.2014, 11:02     Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент #1
В одномерном массиве удалить веденный с клавиатуры элемент.
Определить шаблонный класс. В конструкторе выделить динамическую память для массива


Помогите сделать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2014, 11:02     Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент
Посмотрите здесь:

Удалить 0 элементы в одномерном массиве C++
Как корректно удалить шаблонный класс CList? C++
Создать шаблонный класс - ассоциативный массив, используя std::vector C++
В одномерном массиве, вводимом с клавиатуры и состоящем из 10 вещественных элементов, вычислить C++
Создать шаблонный класс "Элемент списка" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
28.06.2014, 11:22     Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
template<class A>
class arr
{
   A* p;
   int size;
public:
   arr():A(0),size(0){}
   arr(A *x,int s)
   {
        size=s;
        p=new A[s];
        for(int i=0;i<s;i++)
             p[i]=x[i];
   }
   arr(const arr& rx)
   {
        size=rx.size;
        p=new A[size];
        for(int i=0;i<size;i++)
             p[i]=rx.p[i];
   }
   ~arr()
   {
        if(p)
          delete[] p;
   }
   void remove(int val)
   {
        for(int i=0;i<size;i++)
            if(p[i]==val)
              for(int j=i;j<size-1;j++)
                   p[j]=p[j+1];
       size--;
   }
   void out()
   {
       for(int i=0;i<size;i++)
             cout<<p[i]<<" ";
      cout<<endl;
   }
};
int main()
{
    int t[10];
    for(int i=0;i<10;i++)
        t[i]=rand()%100;
    arr<double> d(t,10);
    int N;cin>>N;
    arr.out();
    arr.remove(N);
    arr.out();
}
dimk
0 / 0 / 0
Регистрация: 28.06.2014
Сообщений: 11
28.06.2014, 11:30  [ТС]     Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент #3
в 46 строке на rand ругается
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
28.06.2014, 11:40     Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент #4
Цитирую MS
Requirements
Required header
rand <stdlib.h>
dimk
0 / 0 / 0
Регистрация: 28.06.2014
Сообщений: 11
28.06.2014, 13:51  [ТС]     Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент #5
не работает тут нет функции main

Добавлено через 19 минут
пишет что ее нет и ругается на все что ниже 46 строки
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
28.06.2014, 16:33     Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент #6
Полный текст с исправлениями:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <cstdlib>
using namespace std;
 
template<class A>
class arr
{
   A* p;
   int size;
public:
   arr():A(0),size(0){}
   arr(A *x,int s)
   {
        size=s;
        p=new A[s];
        for(int i=0;i<s;i++)
             p[i]=x[i];
   }
   arr(const arr& rx)
   {
        size=rx.size;
        p=new A[size];
        for(int i=0;i<size;i++)
             p[i]=rx.p[i];
   }
   ~arr()
   {
        if(p)
          delete[] p;
   }
   void remove(int val)
   {
        for(int i=0;i<size;i++)
            if(p[i]==val)
            {
              for(int j=i;j<size-1;j++)
                   p[j]=p[j+1];
              size--;
            }
   }
   void out()
   {
       for(int i=0;i<size;i++)
             cout<<p[i]<<" ";
      cout<<endl;
   }
};
int main()
{
    const int SIZE=20;
    int t[SIZE];
    for(int i=0;i<SIZE;i++)
        t[i]=rand()%100;
    arr<int> d(t,SIZE);
    int N;cin>>N;
    d.out();
    d.remove(N);
    d.out();
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2014, 15:44     Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент
Еще ссылки по теме:

C++ В одномерном массиве А из n элементов удалить средний элемент
В одномерном массиве удалить средний элемент C++
C++ В одномерном массиве удалить те элементы, которые расположены в заданном с клавиатуры диапазоне

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dimk
0 / 0 / 0
Регистрация: 28.06.2014
Сообщений: 11
04.07.2014, 15:44  [ТС]     Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент #7
можно ли прокомментировать весь код программы

Добавлено через 43 минуты
прокомментируйте весь код программы пожалуйста
Yandex
Объявления
04.07.2014, 15:44     Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент
Ответ Создать тему
Опции темы

Текущее время: 11:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru