Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 14:19   #1
Paganec
Новичок
Джуниор
 
Регистрация: 19.12.2010
Сообщений: 2
Вопрос Не воспринимается класс итераторов

Предметная область: Множество натуральных чисел,
Реализованное через Хеш таблицы С цепочками.

В классе "myhash" не воспринимается класс "it_hash" а точнее не воспринимается функция
it_hash begin() const;

Вот Код:
Код:
#include<iostream>
using namespace std;
struct list
{
	int info;
	list *next;
};
struct hash
{
	int n;
	list **h;
};
class myhash
{
private:
	hash x;
public:
	friend class it_hash;
	myhash (int n1=10)
	{
			x.n=n1;
		x.h=new list *[x.n];
		for (int i=0; i<x.n; i++)
		{
			x.h[i]=NULL;
		}
	}
	myhash(const myhash &p)
	{
		x.n=p.x.n;
		x.h=new list*[x.n];
		for (int i=0; i<p.x.n; i++)
		{
			if(!p.x.h[i])
				x.h[i]=NULL;
			else
			{
				x.h[i]=new list;
				x.h[i]->info=p.x.h[i]->info;
				x.h[i]->next=NULL;
				list *f=p.x.h[i];
				list *e=x.h[i];
				f=f->next;
				while (f)
				{	
					list *v=new list;
					v->info=f->info;
					v->next=f->next;
					e->next=v;
					f=f->next;
					e=e->next;
				}
				e->next=NULL;
			}
		}
	}
	~myhash()
	{
		for (int i=0; i<x.n; i++)
			list_remove(x.h[i]);
		delete []x.h;
	}
	//Установка курсора на начало//
	it_hash begin()const
	{
		it_hash a;
		list *f;
		for (int j=0; j<x.n; j++)
		{
			f=x.h[j];
			if (f)
			{
				a.i=j;
				a.kursor=f;
				break;
			}
		}
		for (int j=0; j<x.n; j++)
		{
			while (f->next)
				f=f->next;
		}
		a.konec=f;
		return a;
	}
};
class it_hash
{
private:
	myhash *p;
	int i;
	list *kursor;
	list *konec;
public:
	friend class myhash;
	it_hash()
	{
		p=NULL; i=0; kursor=NULL; konec=NULL;
	}
	it_hash (const it_hash &x)
	{
		p=x.p; i=x.i; kursor=x.kursor; konec=x.konec;
	}	
};
Paganec вне форума Ответить с цитированием
Старый 21.12.2010, 15:34   #2
Paganec
Новичок
Джуниор
 
Регистрация: 19.12.2010
Сообщений: 2
По умолчанию

Без вас справился=))
Paganec вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс Chartvit Visual C++ 2 05.01.2011 22:20
КЛАСС 4ika Общие вопросы C/C++ 1 16.03.2010 21:32
UTF-8 не воспринимается браузерами SwiP HTML и CSS 17 24.04.2009 00:01
C++ . Класс Ануар56 Помощь студентам 8 23.04.2009 19:41