Форум Кумертау-City.ru: Помогите избавиться от временной переменной - Форум Кумертау-City.ru

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Помогите избавиться от временной переменной ибо нефиг Оценка: -----

#1 Пользователь офлайн   HolyDel 

  • Написатель
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Группа: Участник
  • Сообщений: 892
  • Регистрация: 28 April 06
  • Репутация: -4

Отправлено 04 April 2008 - 00:27

Entity* Entity::Find(char* name)
{
	if(childs)
	{
		Telist::const_iterator ei;
		Telist::const_iterator endi=childs.end();

		for(ei=childs.begin();ei!=endi;++ei)
		{
			if(strcmp((*ei)->GetName(),name)==0 ){return (*ei);}
			else
			{
				[b]Entity *tmp;
				tmp = (*ei)->Find(name);
				if(tmp!=NULL)return tmp;[/b]
			}
		}
	}
	return NULL;
}

выделен нехороший участок. (мне кажется) что от лишней временной переменной можно избавится, но никак не соображу как (
  • +
  • 0

#2 Пользователь офлайн   APXi 

  • Активный участник
  • PipPipPipPip
  • Вставить ник
  • Цитировать
  • Группа: Участник
  • Сообщений: 342
  • Регистрация: 10 November 03
  • Репутация: 9

Отправлено 04 April 2008 - 16:06

// Думаю мона вот так попробовать
Entity* Entity::Find(char* name)
{
	if(childs)
	{
		Telist::const_iterator ei;
		Telist::const_iterator endi=childs.end();

	ei = childs.begin();

		find := false;

		while (!find)&&(ei!=endi)
		{
			if(strcmp((*ei)->GetName(),name)==0 ){find:=true;}
			else
			{
				if((*ei)->Find(name))find:=true;
			}
			++ei		
		}

		if (find) return (*ei);
	}
	return NULL;
}

Сообщение отредактировал APXi: 04 April 2008 - 16:06

  • +
  • 0

#3 Пользователь офлайн   HolyDel 

  • Написатель
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Группа: Участник
  • Сообщений: 892
  • Регистрация: 28 April 06
  • Репутация: -4

Отправлено 04 April 2008 - 19:13

APXi, спасибо! навел на мысль. буду пробовать.
  • +
  • 0

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых