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

Реализация односвязного списка (конструктор) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дан бинарный файл F, с помощью цикла записать его содержимое в новый файл g наоборот http://www.cyberforum.ru/cpp-beginners/thread979223.html
Дан бинарный файл F, с помощью цикла записать его содержимое в новый файл g наоборот
C++ Дан бинарный файл f, вывести его содержимое на экран Дан бинарный файл f, вывести его содержимое на экран http://www.cyberforum.ru/cpp-beginners/thread979221.html
Добавить К столбцов в начало матрицы C++
Нужно добавить К столбцов в начало матрицы, я сделала сам вывод матрицы но не знаю как сделать так что бы теперь добавлялся столбец. #include <iostream> #include <stdlib.h> #include <conio.h> int main() { int k,i,t,r,n,m,j;
C++ Определить в матрице сумму элементов, номера строк которых кратны 3, а столбцов — 4
Помогите написать программу: Данные действительные числа а и b (а> b). Сформировать матрицу XY , элементами которой являются действительные случайные числа, равномерно распределенные на отрезке . Определить сумму элементов, номера строк которых кратны 3, а столбцов - 4.
C++ сортировка txt файла http://www.cyberforum.ru/cpp-beginners/thread979200.html
Добрый день. Имеется txt файл, в котором около 100 строк. Необходимо вытащить из файла только те строки где присутствует имя Машина, и закинуть в другой txt файл. Заранее спасибо!
C++ Не могу найти ошибку(Вычисление суммы бесконечного ряда) помогите найти ошибку! #include <cstdlib> #include <iostream> #include <math.h> using namespace std; int main() { int n=1; подробнее

Показать сообщение отдельно
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
16.10.2013, 19:19     Реализация односвязного списка (конструктор)
Доброго времени суток.
Вот реализую односвязный список, застрял на конструкторе который принимает два итератора:
C++
1
2
3
4
5
6
List(iterator b, iterator e):head(0){
while(b != e){
push_back(*b);
b++;}
 
}
итератор к етому списку уже написан:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template<class TipUzla> class Iterator{
    friend class List<typename TipUzla::value_type>;
TipUzla* p_uzla;//ekazatel' na tip uzla
Iterator (TipUzla * _p_uzla): p_uzla(_p_uzla){}
public:
void operator++(){p_uzla = p_uzla->_next;}
void operator++(int){p_uzla = p_uzla->_next;}
bool operator==(Iterator<TipUzla> newiter){return(newiter.p_uzla == p_uzla);}
bool operator!=(Iterator<TipUzla> newiter){return !(newiter.p_uzla == p_uzla);}
typename TipUzla::value_type operator*(){return p_uzla->_data;}
Iterator<TipUzla> operator+ (int _i){
Iterator<TipUzla> iter = *this;
for(int i = 0; i != _i; i++){
    if(iter.p_uzla) iter++;
    else break;
        }
        return iter;
    }
};
и сама связка
C++
1
2
3
4
5
6
7
8
9
10
11
12
template<typename T>class Node{
friend class Iterator<Node<T> >;
friend class List<T>;
T _data;
Node<T>* _next;
Node() : _next(0) {}
Node(T data): _data(data), _next(0) {}
Node(T data, Node<T>* next): _data(data), _next(next) {}
Node(Node<T>* next): _next(next) {}
public:
typedef T value_type;
};
так вот когда я в main() инициализирую список как
C++
1
2
3
4
5
6
7
8
List<int> my_list;
    my_list.push_back(10);
    my_list.push_back(11);
    my_list.push_back(30);
    my_list.push_back(40);
    my_list.push_front(9);
    my_list.push_front(7);
    List<int> list1(my_list.begin(), my_list.end());
то работает, а когда
C++
1
2
int arr[] = {1, 2, 3, 4, 5};
    List<int> list1(arr, arr + 5);
то выдает ошибку.
вот моя функцие push_back:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void push_back(T data)
    {
        if (head)
        {
            Node<T> *iter = head;
            while(iter->_next!= 0)
                iter = iter->_next;
            iter->_next = new Node<T>(data);
 
        }
        else
            head = new Node<T>(data);
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru