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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тип множество! макросы, макросы 
:(
    Опции темы
Vetos
Дата 26.5.2010, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здравствуйте все!
Нашел пример множества в книге, вот оно)):
Код

typedef union{ 
unsigned char data[16]; 
long __data[4]; 
}TSet,*PSet; 


#define Clear(set)\
    (set).data[0] = 0; (set).data[1]=0; (set).data[2] = 0; (set).data[3] = 0;

#define Include(set, n)\
    (set).data[(n) >> 3] |= (1 << ((n) & 7));

#define In(set, n)\
    ( (set).data[ (n) >> 3 ] & (1 << ((n) & 7)) )



в множество можно затулить числа от 0 до 99, но в принцыпе должно быть до 127.

но после использовании функции Clear, печать множества функцией
Код
void printset( TSet Set )
{
    for(int i=0; i < 100; i++ )
        if( (In( Set, i ))>0 )
            printf(" %i,", i );
}

выводит мне следующие числа  36, 38, 39, 41, 46, 54, 66, 67, 70, 71, 73, 78, 86. А по идее ни должно ничего вывести. Это вообще реально починить, как оно там шо делает я не знаю, может ктонибудь увидит ошибку.Спасибо.

В общем разобрался как почистить множество:
Код
#define Clear(set)\
    (set).data[0] = 0; (set).data[1]=0; (set).data[2] = 0; (set).data[3] = 0;\
    (set).data[4] = 0; (set).data[5]=0; (set).data[6] = 0; (set).data[7] = 0;\
    (set).data[8] = 0; (set).data[9]=0; (set).data[10] = 0; (set).data[11] = 0;\
    (set).data[12] = 0; (set).data[13]=0; (set).data[14] = 0; (set).data[15] = 0;

но вот значения больше 99, не залазят:(

Это сообщение отредактировал(а) Vetos - 26.5.2010, 00:28


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
boostcoder
Дата 26.5.2010, 01:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



в чем смысл сего изврата?
std::set<> не подходит?
PM WWW   Вверх
Vetos
Дата 27.5.2010, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я про такое и не знал! И все равно вопрос!
Вот это std::set, как по скорости будет работать. У меня дерево возможных ходов, где генерится около 200000000  возможных комбинаций, и то это с альфа-бета. Мне почемуто кажется что std::set не подходит для этой цели, так как жрет и ресурсы, так и процессорное время, я конечно незнаю как это организовано, но думаю не в пару строк кода.


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
boostcoder
Дата 27.5.2010, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(Vetos @  27.5.2010,  20:54 Найти цитируемый пост)
Вот это std::set, как по скорости будет работать. У меня дерево возможных ходов, где генерится около 200000000  возможных комбинаций, и то это с альфа-бета. Мне почемуто кажется что std::set не подходит для этой цели, так как жрет и ресурсы, так и процессорное время, я конечно незнаю как это организовано, но думаю не в пару строк кода. 

обо всем этом, можно почитать у классиков С++.
могу сказать одно - лучше все равно не напишете.

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

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

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

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

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


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

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


 




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


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

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