Здравствуйте, Socket, Вы писали:
S>Подскажите как можно отсортировать элементы множества по полю get_count
Никак — уникальность в std::sort обеспечивается через сортировку, их нельзя разделить.
Я бы на твоем месте (я не знаю твоей задачи) либо скопировал содержимое множества в вектор и отсортировал его, либо перешел бы на boost::multi_index
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Socket, Вы писали:
S>>Подскажите как можно отсортировать элементы множества по полю get_count J>Никак — уникальность в std::sort обеспечивается через сортировку, их нельзя разделить.
но ведь можно же указать в качестве 3 параметра процедуру сравнения?
нужно чтото вроде
Здравствуйте, Socket, Вы писали:
S>но ведь можно же указать в качестве 3 параметра процедуру сравнения?
S>std::sort(my_set.begin(),my_set.end(),sort_by_get_count);
Здравствуйте, jazzer, Вы писали:
J>Может, опишешь задачу подробнее?
В общем CUrlContainer содержит в себе уникальные строки.
уникальность проверяется ч-з мою процедуру сравнения SortCriterionByUnique
очень часто идет поиск этих строк, вызывая метод find у моего класса
find(const string& s)
ищу, перебирая значения
CUrlContainer::MySetType::iterator pos;
for( pos = m_set.begin(); pos != m_set.end(); ++pos )
...
здесь проверяется регуляркой.
и я сразу если регулярка сработала у UrlContainer увеличиваю счетчик get_count
т.е. я хочу поднять к верху часто вызываемые элементы, например при каждом тысячнов обращении
Здравствуйте, Socket, Вы писали:
S>Здравствуйте, jazzer, Вы писали:
J>>Может, опишешь задачу подробнее?
S>В общем CUrlContainer содержит в себе уникальные строки. S>уникальность проверяется ч-з мою процедуру сравнения SortCriterionByUnique S>очень часто идет поиск этих строк, вызывая метод find у моего класса
S>find(const string& s)
S>ищу, перебирая значения
S>CUrlContainer::MySetType::iterator pos; S>for( pos = m_set.begin(); pos != m_set.end(); ++pos ) S>... S>здесь проверяется регуляркой. S>и я сразу если регулярка сработала у UrlContainer увеличиваю счетчик get_count
S>т.е. я хочу поднять к верху часто вызываемые элементы, например при каждом тысячнов обращении
Ну, тогда тебе поможет Boost.MultiIndex, с двумя индексами — уникальный по unique_value (по нему ты будешь добавлять) и неуникальный по get_count (по нему ты будет итерироваться при поиске по регекспу).