Konstantin
Pepe 🐸
ну если только не нравится декларативное описание
еще изменения файлов по таймстэмпам проверяет
ed
Паскаль инданезия и чат созданный час назад - не в счёт..
Andrew
посмотрел trivial_vector, помню что писал x2 resize и мне очень не нравилось такое в 32-битном режиме
А вот это в официальном todo на главной странице тебя не смутило: "Finish trivial vector, which is unfinished and currently segfaults."? 😊 Они это еще переделают как минимум 1 раз.
🐙 Antony
А кто-нибудь знает, как можно ускорить https://www.boost.org/doc/libs/1_66_0/libs/graph/doc/hawick_circuits.html для графа типа "транспортная сеть"? А то у меня алгоритм на 65535 работает очень долго
Alexander "SonnySlave"
@isenbaev @webreh
🐙 Antony
Проверить что в сети нет циклов
Constantine
Проверить что в сети нет циклов
В смысле, проверить, что ориентированный граф это DAG?
Alexander "SonnySlave"
да
Constantine
Ну самое простое это выполнить topsort через DFS и просто его проверить
Constantine
У вершины номера - последовательные числа?
Constantine
> The visitor that will be notified on each circuit found by the algorithm.
🐙 Antony
да, но у стока и синка могут быть случайные номера
Constantine
Это что-то существенно более специфическое по описанию
Constantine
да, но у стока и синка могут быть случайные номера
Ну тогда простейший олимпиадный код - топсорт, прекалькнуть обратную перестановку для топсорта (т.е. поиск номера по вершине) и потом проверить каждое ребро, что ведет в нужную сторону
Constantine
да, но у стока и синка могут быть случайные номера
Скорее всего, для задачи можно просто дернуть вот этот алгоритм https://www.boost.org/doc/libs/1_66_0/boost/graph/strong_components.hpp
Ostap ꑭ
Возможно, я не в тему, но можно жэ topological_sort, который через dfs работает. boost::topological_sort кидает исключение, если в графе есть циклы
Constantine
сорри, там сильносвязные, конечно
Anonymous
делать buffer из stringstream затратно, какую-нибудь реализацию по легче где посмотреть?
🐙 Antony
Не хочется писать алгоритм саомоу, хочется взять готовое отюда https://www.boost.org/doc/libs/1_66_0/libs/graph/doc/table_of_contents.html
Constantine
Не хочется писать алгоритм саомоу, хочется взять готовое отюда https://www.boost.org/doc/libs/1_66_0/libs/graph/doc/table_of_contents.html
Ну товарищ говорит, что вот это бросит исключение, т.е .задачу решает https://www.boost.org/doc/libs/1_66_0/boost/graph/topological_sort.hpp
Alexander "SonnySlave"
вызывай топ сорт из буста/ если будут циклы то кинет исключение
Constantine
ага, там готовый визитор есть! Спасибо! сейчас заиспользуем
надо только внимательно ман прочитать, что там гарантированно исключение)
Constantine
но вроде да
Constantine
если подумать, как работает
Andrew
А написать свой визитор к dfs'у слишком лень?
Alexander "SonnySlave"
а зачем? если уже есть готовое
🐙 Antony
Там правда визитор просто ругается, чтто не DAG, но получает на вход ребро, принядлежащее к циклу Можно найти нужную вершину и для неё дернуть hawick
Constantine
Как я понимаю
Andrew
А в чем проблема? Разве не надо было булевого ответа "есть/нет цикл"?
Ostap ꑭ
Исключение boost::not_a_dag, если чё
Andrew
Если нужен контрпример цикла, то можно написать свой визиток к dfs, который будет поддерживать стек dfs'а , и при нахождении цикла просто вывести все вершины в стеке ниже уже посещенной.
Andrew
В данном контексте сложно понять, это сарказм или нет. 😊
🐙 Antony
Нет, не сраказм
Andrew
Да всегда пожалуйста.
Stas
англицкий норм?
Школьный уровень
Animal
https://ideone.com/oQ0p6V#stdin
Animal
работает под гцц
Animal
а у меня msvc . Сейчас поищу онлаин мсвц
Animal
http://rextester.com/MIPEJ40233
Animal
ну да, в msvc не работает
Animal
один и тот же код работает под гцц и не работает в msvc. Что поправить , что бы заработал под msvc?
Anatoly
один и тот же код работает под гцц и не работает в msvc. Что поправить , что бы заработал под msvc?
попробуй уговорить его так: template<template<typename, typename...> class C = std::vector, typename... Rest> double eventGenerator(C<std::pair<Event_t, std::chrono::seconds>, Rest...> events) { ... } https://godbolt.org/g/4XYdbY
Dariia
Нету вакансии у кого-то? Хотелось бы в этом направлении поработать
Artöm
А че функция double, а return нет?
ttldtor
Artöm
Еще можно поменять сигнатуру eventGenerator на double eventGenerator(CONT<std::pair<Event_t, std::chrono::seconds>, std::allocator<std::pair<Event_t, std::chrono::seconds>>> events)
Artöm
Хотя я не уверен, что это для всех контейнеров подойдет
Artöm
Для vector компилируется
Artöm
Да, с ...Rest лучше
Constantine
Спасибо, написал, обложил тестами. Работает хорошо и быстро (намного быстрее hawick)
Главное не забыть перекрестные ребра в DFS в тесты добавить
Constantine
цикл детектится в back_edge
я не читал мануал, что такое back_edge из них :)
Anatoly
я не читал мануал, что такое back_edge из них :)
https://www.boost.org/doc/libs/1_65_1/libs/graph/doc/DFSVisitor.html
Constantine
но вроде да, тут все правильно
Anatoly
не, не сработало http://rextester.com/FUNFJ62754
Я проверил на 2017 студии, а у тебя какая?
Animal
тоже 17, а версия msvc 14.1
Anatoly
не, не сработало http://rextester.com/FUNFJ62754
стоп, ты немного неверно написал, обрати внимание на Rest: template<template <typename, typename... > class CONT, typename... Rest> double eventGenerator(CONT<std::pair<Event_t, std::chrono::seconds>, Rest...> events)
Animal
а , точно
Animal
да, заработало в он лаин компиляторе
Animal
спасибо. А в чем проблема то? Почему не работало?
Anatoly
спасибо. А в чем проблема то? Почему не работало?
компилятор не смог вывести тип, бывает. можно попробовать забагрепортить.
Animal
А как вы поняли, что нужно было добавить variadic в конце параметров шаблона?
Anatoly
А как вы поняли, что нужно было добавить variadic в конце параметров шаблона?
исходная ошибка показала, что он банально теряется в выводе, поэтому я пошагово прошел от template<typename C> до финальной специализации.
Animal
Понятно, спасибо еще раз
Anatoly
Понятно, спасибо еще раз
надо отдать должное MSVC, он стал на порядок посговорчивей.
Egor
в шланг подъехала фс
Egor
Commit: 1e34c76d3374164cff168bd571f61387c3b0d3f3 [1e34c76] Parents: ead2a54952 Author: Eric Fiselier <eric@efcs.ca> Date: 2 апреля 2018 г. 23:03:41 Committer: Eric Fiselier Implement filesystem NB comments, relative paths, and related issues.
Ioann_
Ребят, можно ли собрать статик либу в релизе