powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / std::set как получить итератор на середину?
10 сообщений из 10, страница 1 из 1
std::set как получить итератор на середину?
    #39200979
Кто Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, господа!

std::set организован в виде дерева, ведь должен быть какой-то способ получить середину без лишнего оверхэда,
за константное время?
(vs 2008)
...
Рейтинг: 0 / 0
std::set как получить итератор на середину?
    #39201022
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет.
...
Рейтинг: 0 / 0
std::set как получить итератор на середину?
    #39201024
Пётр Седов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто Я, вы имеете в виду быстро получить итератор, который ссылается на root node? Кросс-платформенно -- нельзя:
// http://www.cplusplus.com/reference/set/set/
Ну а лезть внутрь конкретной реализации STL -- крайне сомнительный путь.
...
Рейтинг: 0 / 0
std::set как получить итератор на середину?
    #39201031
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,

Как "нет", когда " да "?
...
Рейтинг: 0 / 0
std::set как получить итератор на середину?
    #39201032
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто ЯДоброго времени суток, господа!

std::set организован в виде дерева, ведь должен быть какой-то способ получить середину без лишнего оверхэда,
за константное время?
(vs 2008)

Не за константное, а за логарифмическое. log(N), ты же сам говоришь "дерево", а у дерева нет
константных времён, они есть только у хэштаблиц.
...
Рейтинг: 0 / 0
std::set как получить итератор на середину?
    #39201042
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНе за константное, а за логарифмическое.
Ну и какое нафик "да" тогда?
Был конкретный вопрос. Конкретный ответ на него - нет.
...
Рейтинг: 0 / 0
std::set как получить итератор на середину?
    #39201045
Пётр Седов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivу дерева нет константных времёнstd::set реализован каким-нибудь сбалансированным деревом (обычно красно-чёрным), а значит корневой node примерно соответствует середине последовательности. std::set конечно же хранит указатель на корневой node, и запросто мог бы возвращать итератор с этим указателем, за константное время.
...
Рейтинг: 0 / 0
std::set как получить итератор на середину?
    #39201049
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пётр Седовмог бы возвращать итератор с этим указателем, за константное время.
Количество задач в которых нужна середина сета стремится к 0, поэтому мало ли что мог бы, важно не этого нет, и не будет никогда ))
...
Рейтинг: 0 / 0
std::set как получить итератор на середину?
    #39201070
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyПётр Седовмог бы возвращать итератор с этим указателем, за константное время.
Количество задач в которых нужна середина сета стремится к 0, поэтому мало ли что мог бы, важно не этого нет, и не будет никогда ))


Это да, но если примерно знать ключ середины, или хотя-бы его начало, можно получить итератор середины или чего-то близкого к нему.
...
Рейтинг: 0 / 0
std::set как получить итератор на середину?
    #39201169
Кто Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / std::set как получить итератор на середину?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]