Russian Qt Forum
Май 29, 2024, 12:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: Как создать объект с уникальным для него идентификатором?  (Прочитано 17855 раз)
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #30 : Январь 21, 2009, 12:46 »

Алгоритм полного перебора, мягко говоря, неоптимален по времени.

+1

Если вы боитесь переполнить unsigned int (а это 4294967295 объектов), то подумайте над производительностью вашего алгоритма генерирования ID. Ва нужно будет всегда пробегать по всем объектам и искать повторения.

Но, ваш алгоритм можно улучшить, путем хранения ID в списке и предварительной его сортировки перед началом его работы.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #31 : Январь 21, 2009, 12:50 »

а этот ID разве не может повториться ?

Цитировать
The clock function's era begins (with a value of 0) when the C program starts to execute. It returns times measured in 1/CLOCKS_PER_SEC (which equals 1/1000 for Microsoft C).
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
kirill
Гость
« Ответ #32 : Январь 21, 2009, 12:54 »


а этот ID разве не может повториться ?

Это количество милисекунд от начала новой эры, сиречь 1 января 1970 года.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #33 : Январь 21, 2009, 13:06 »

Спасибо всем за помощь!

буду пробовать! Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
Dendy
Гость
« Ответ #34 : Январь 21, 2009, 14:01 »

Кажется я понял что вам нужно. Для себя написал небольшой класс для этой задачи, но тем не менее он уже используется у меня в проекте в нескольких местах - уже больно полезный оказался.

http://dendy.org.ua/idgenerator.zip

Единственно что вам нужно в него добавить - сериализацию/десериализацию, а также возможность выбора собственных идентификаторов, если вы их где-то сохраняете.
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.041 секунд. Запросов: 19.