Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 24
1

Удаление элементов массива

22.05.2013, 22:18. Показов 1196. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть код удаления элемента массива, но для определённого типа. После того как использую шаблоны у меня ошибки в программе появляются, где тут не правильно.
Вот первоначальный код
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
#include<iostream>
#include <cstdlib>
using namespace std;
bool Delete(int *Array, int &SizeArray, int num);
int main()
{
   int size;
   cout << "Size of Massiv: ";
   cin >> size;
   int *Massiv = new int [size];
   for (int i = 0; i < size; i++)
   {
       Massiv[i] = rand() % 100; 
       cout << Massiv[i] << "  "; 
   }
   cout << endl;
   int n;
   cout << "Number of Massiv, for delete: ";
   cin >> n;
   Delete(Massiv, size, n);
   for (int i = 0; i < size; i++)
   {
       cout << Massiv[i] << "  "; 
   }
   cout << endl;
   delete [] Massiv;
   return 0;
}
   bool Delete(int *Array, int &SizeArray, int num)
  {
    if ( num > SizeArray || num < 1)
    {
        cout << "Delete Fail" << endl;
        return false; 
    }
 
    for(int i = num - 1; i < SizeArray - 1; i++)
    {
        Array[i] = Array[i + 1];
    }
    SizeArray--;
    return true;
  }
Вот с произвольным типом:
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
#include<iostream>
#include <cstdlib>
using namespace std;
bool Delete(int *Array, int &SizeArray, int num);
int main()
{
   int size;
   cout << "Size of Massiv: ";
   cin >> size;
   template<typename T>
   T *Massiv = new T[size];
   for (int i = 0; i < size; i++)
   {
       Massiv[i] = rand() % 100; 
       cout << Massiv[i] << "  "; 
   }
   cout << endl;
   int n;
   cout << "Number of Massiv, for delete: ";
   cin >> n;
   Delete(Massiv, size, n);
   for (int i = 0; i < size; i++)
   {
       cout << Massiv[i] << "  "; 
   }
   cout << endl;
   delete [] Massiv;
   return 0;
}
   template<typename T>
   bool Delete(T *Array, int &SizeArray, int num)
  {
    if ( num > SizeArray || num < 1)
    {
        cout << "Delete Fail" << endl;
        return false; 
    }
 
    for(int i = num - 1; i < SizeArray - 1; i++)
    {
        Array[i] = Array[i + 1];
    }
    SizeArray--;
    return true;
  }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2013, 22:18
Ответы с готовыми решениями:

Удаление четных элементов массива,больших среднего арифметического всех элементов массива
Доброго времени суток! Помогите пожалуйста) Вот задание:Из массива удалить четные элементы,...

Удаление из одного массива элементов второго массива и запись результата в третий
Есть массив masA (длина lenA), есть массив masB (длина lenB). Необходимо из массива masA удалить...

Удаление элементов массива, которые равны сумме предыдущего и следующего элементов
Нужно написать подпрограмму которая удаляет элементы массива, которые равны сумме предыдущего и...

Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции
Что исправить? #include &lt;stdio.h&gt; #define N 10 int udalenie(int A,int k ) { int i; ...

2
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
22.05.2013, 22:26 2
строку 4 замените на
C++
1
2
 template<typename T>
   bool Delete(T *Array, int &SizeArray, int num);
Добавлено через 3 минуты
и строки 10-11 должны быть с конкретным типом, например,
C++
1
   int *Massiv = new int[size];
Добавлено через 2 минуты
Кстати, без проблем работает, например, так:
C++
1
   string *Massiv = new string[size];
1
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 24
22.05.2013, 22:33  [ТС] 3
Аа всё понял, спасибо, функция должна быть для произвольного типа а int main это сам пользователь выберет в коде.
0
22.05.2013, 22:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2013, 22:33
Помогаю со студенческими работами здесь

Удаление элементов массива, совпадающих с элементами другого массива
Здравствуйте, помогите найти ошибку в коде; суть задачи такая: удалить элементы из 1 массива,...

Удаление элементов массива без буферного массива
Требуется удалить элементы из массива, при это длинна массива уменьшится, ВАЖНО буферный массив не...

Удаление элементов из массива
Удалить все элементы из массива, которые встречаются менее 3 раз. Вот код, уже который час бьюсь,...

Удаление элементов массива
1)В каждой группе подряд идущих одинаковых элементов оставить только один элемент. Если удаление...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru