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

Поиск:

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


Новичок



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

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



Реализовать групповое добавление, удаление и замена элементов. Группа представляется диапазоном итераторов. Реализовать методы поиска элементов и групп элементов.
Написал простое добавление элемента, как прикрутить сюда итераторы?
Код

#include "stdafx.h"

using namespace std;
#include <iostream>
#include <conio.h>  
#include <ctype.h> 
#include <windows.h>


template<typename T>
struct Link {
    T data;
    Link* next;
};

template<typename T>
class List {
    Link<T>* first;
public:
    List() :first(nullptr) {};
    List(const List<T>& Source);
    ~List() {
        Link<T> *current = first;
        while (current != nullptr) {
            Link<T>* temp = current;
            current = current->next;
            delete temp;
        }
            }
    void Add(T Data);
    void Show();
    template <typename T> friend void ShowA(List<T>& list);
    template <typename T> friend void AddA(List<T>& list, T Data);
};





template<typename T>
List<T>::List(const List<T>& Source)
{
    Link<T> *temp = Source->first;
    Link<T> *A,*B = NULL;
    

    while (temp != NULL) 
    {
        A = new Link<T>;
        A->data = temp->data;
        if (B != NULL)
            B->next = &A;
        else
            first = &A;
        B = &A;
        temp = temp->next;
    }
}


template<typename T>
void List<T>::Add(T Data)
{
    Link<T> *temp = first;
    Link<T> *NewNode = new Link<T>;

    if(temp != NULL)
        while (temp->next != NULL) temp = temp->next;

    NewNode->data = Data;
    NewNode->next = NULL;
    if (temp != NULL)
        temp->next = NewNode;
    else
        first = NewNode;
}


template<typename T>
void List<T>::Show()
{
    Link<T> *temp = first;
    while (temp != NULL) {
        cout << (T)temp->data << endl;
        temp = temp->next;
    }
}

template <typename T>
void ShowA(List<T>& list)
{
    list.Show();
}

template <typename T>
void AddA(List<T>& list, T Data)
{
    list.Add(Data);
}

int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

    List<int> Test;
    AddA(Test, 3);
    AddA(Test, 4);
    cout << "данные"<<endl;
    ShowA(Test);
    _getch();
    return 0;
}

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

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

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

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

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


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

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


 




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


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

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