Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Шаблонный класс 
:(
    Опции темы
MAO25
Дата 21.5.2010, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 21.5.2010

Репутация: нет
Всего: нет



___

Это сообщение отредактировал(а) MAO25 - 4.6.2010, 20:41
PM MAIL   Вверх
toxx
Дата 21.5.2010, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



Код

template<class T> void Array<T>::Merge(int  nSize)
{ //Выполнить слияние массива A, содержащего nA элементов,
  //  и массива B, содержащего nB элементов.
  //  Результат записать в массив C.
    T *A=new T[Size];
    T *B=new T[Size];

    int i(0), j(0); //Номера текущих элементов в массивах A и B

    while( i+j < Size*2 ) //Пока остались элементы в массивах
    {
        if( (j>=Size) || ( (i<Size) && (A[i]<=B[j]) ) )
        { //Копирую элемент из массива A
            p[i+j] = A[i];
            ++i;
        } else { //Копирую элемент из массива B
            p[i+j] = B[j];
            ++j;

        }
    }
}


если я верно понял, то может нужно передавать 2 массива, далее в зависимости от размерности создать С и скопировать туда массивы, это вы хотите?

PM MAIL   Вверх
MAO25
Дата 21.5.2010, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 21.5.2010

Репутация: нет
Всего: нет



Да, я хотела так) 
PM MAIL   Вверх
toxx
Дата 21.5.2010, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



MAO25
1.уберите точку с запятой после каждой функции
Код

template <class T> void Array<T>::output() 
{ 
    for (int i=0; i<Size; i++){
        cout<<p[i]<<' ';}
    cout<<endl;

};

2.Перегрузите оператор [], чтобы иметь доступ к элементам.
3.Функция слияния должна выглядеть как-то так
Код

void Array<T>::Merge(int  nSize,Array<T> & p1,Array<T> &p2)

4.Заведите метод size() который бы возвращал размер вашего массива.
5.Вместо 
Код

 T *A=new T[Size];
    T *B=new T[Size];

тогда напишите
Код

 T *p=new T[p1.size()+p2.size()];

и далее скопируете свои элементы.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.3454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.