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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2015, 17:06   #1
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию Бинарный поиск в векторе

Здравствуйте, помогите пожалуйста реализовать бинарный поиск в векторе. На выходе должен вернуть указатель на структуру. Поиск осуществляется (пытается вернее) по id клиента.

Код:
struct TClientConnected
{
	unsigned int id;
	int socket;
	unsigned char servstatus;
	std::string capcha;
	unsigned char capcha_tries;
	struct sockaddr addr;
	std::vector<TClientConnected*> *cl;
};

TClientConnected *BinarySearchClientById(std::vector<TClientConnected*>::iterator left,std::vector<TClientConnected*>::iterator right, unsigned int id) 
{
	std::vector<TClientConnected*>::iterator mid = (std::vector<TClientConnected*>::iterator)((right - left) / 2);
                                                                                              // ^ ругается сюда
//Ошибка	C2440	инициализация: невозможно преобразовать "int" в "std::_Vector_iterator<std::_Vector_val<std::_Simple_types<TClientConnected *>>>"

	if (((TClientConnected*)*mid)->id != id)
	{
		if (id < ((TClientConnected*)*mid)->id)
		{
			return BinarySearchClientById(left, mid-1, id);
		}
		else
		{
			return BinarySearchClientById(mid+1, right, id);
		}
	}
	else
		return *mid;
}
Здравствуйте

Последний раз редактировалось NEoMASTERR; 22.12.2015 в 17:08.
NEoMASTERR вне форума Ответить с цитированием
Старый 22.12.2015, 17:10   #2
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

std::binary_search чем не устроил?
Croessmah вне форума Ответить с цитированием
Старый 22.12.2015, 17:19   #3
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
std::binary_search чем не устроил?
я в нём не разобрался. Думал своими руками получится, но нет.
binary_search ругался на несовпадения типов, не смог привести. Да и вроде он на выходе даёт bool а мне надо указатель на структуру
Здравствуйте
NEoMASTERR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь в доработке программы на языке паскаль (бинарный поиск, поиск перебором) DimzNOVIchok45 Помощь студентам 0 13.10.2014 20:11
Двоичный поиск в векторе Pascal olga_v95 Помощь студентам 7 30.04.2013 07:20
Поиск в векторе stl Blad47 Помощь студентам 8 15.04.2011 15:14
алгоритм search, поиск в векторе ссылочных переменных the_deer_one Общие вопросы C/C++ 13 04.09.2010 21:10
Поиск в векторе. the_deer_one Общие вопросы C/C++ 3 31.08.2010 17:52