На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (7) [1] 2 3 ...  6 7 все  ( Перейти к последнему сообщению )  
> Первая дуэль. , Наичистейший С++ vs С++ + stl + boost
    M

    Оно понятно, что первый блин - комом. Но... Попытка is not пытка, как говаривал тов. Берия. Предлагаю опробовать сий способ разрешения профессиональных споров. Ибо зачем зря воздух сотрясать - мы уже (надеюсь) вышли из детского возраста, у нас в руках есть весь необходимый инструментарий для того, чтобы проверять и поддтверждать свои аргументы не только словами, но и конкретными цифрами статистики и кодом.

    Итак, с чего все начиналось? Вот с такого вот предложения:


    Цитата nvm @
    Аргументацией было бы сравнение результативности фирм, использующих stl+boost, и не использующих их вовсе.
    Однако, последних в природе, видимо, не существует (этот факт кто-то поспешит засчитать в пользу необходимости этих технологий, но он вполне объясним и лишь данью моде).

    nvm, все очень просто - можно устроить небольшое состязание. Выбрать задачку, и посмотреть - кто ее быстрей решит. Я с помощью возможностей stl и boost, или ты (без их помощи). Право выбора оружия, тьфу, т. е. задачи предоставляется тебе. Итоговое сравнение будем проводить по критериям:
    1. Размер полученного исходного текста.
    2. Размер полученного испольняемого кода.
    3. Скорость работы полученного результата.
    4. Суммарное время, потраченное на разработку.
    Понятно, что последнее будет подсчитать сложнее всего, по этому этот показатель можно заменить косвенным признаком - объемом полученного исходного текста.
    Дополнительное условие - никаких copy-paste из имеющихся заготовок. Т. е. если что-то дописывается "свое", то оно пишется "с нуля".

    Эта тема была разделена из темы "Java vs VC++"

    M

    Эстафета была подхвачена Sazabis'ом (сообщение №2), за что ему большущий респект. Помимо задачи и второго участника остается выбрать секундантов и окончательно определиться с критериями победы, ну и... в бой!
      Цитата Flex Ferrum @
      nvm решил не принимать вызов...

      я могу задачку задать ;) кто будет отстаивать силу С/С++ без str/boost поднимайте руки :) Против Вас будет Flex Ferrum, может быть еще кто то захочет. Но каждый пишет сам! Если есть желающие переносимся в раздел "Чистый С" :)
      Я бы и сам мог попробовать, но к сожелению, уже сильно подсел :lol:
        Цитата Sazabis @
        я могу задачку задать кто будет отстаивать силу С/С++ без str/boost поднимайте руки Против Вас будет Flex Ferrum, может быть еще кто то захочет. Но каждый пишет сам! Если есть желающие переносимся в раздел "Чистый С"
        Я бы и сам мог попробовать, но к сожелению, уже сильно подсел

        Отлично! Заодно начинем оттачивать регламент дуэлей!
          Цитата Sazabis @
          Цитата Flex Ferrum @
          nvm решил не принимать вызов...

          ..Я его только что прочитал..

          Принимаю.
          Хотя это не совсем по существу сделанного утверждения, но тоже вариант.

          Пока только нет идей насчет задачи.
            Предлагаю задачу
            Цитата
            Задача. Speed Limits

            В нашем чрезвычайно деловом мире, мы обычно не интересуемся
            в выборе кратчайшего пути в смысле расстояния, но нас интересуют
            маршруты, на которые будет затрачено минимальное время. При езде на
            автомобиле, это означает существенную роль ограничителей скорости на
            различных дорогах. Преположим теперь, что некоторые знаки,
            ограничивающие скорость на дорогах, пропущены. Поскольку водитель не
            может знать на память ограничители скоростей на всех дорогах, то
            естественно предположить, что он будет пользоваться значением
            последнего ограничителя скорости, который он видел.
            Вы должны написать программу, которая вычисляет оптимальный
            маршрут (в смысле минимума потраченного на него времени)
            использующая "пропущенные" знаки ограничения скорости.
            Вам задано описание сети дорог, состоящей из перекрестков и
            дорог. Каждая дорога - односторонняя, соединяет ровно два перекрестка
            и имеет не более одного ограничителя скорости, расположенного в
            начале дороги. Для любых перекрестков A и B существует не более
            одной дороги из A в B. Вы можете полагать, что ускорение происходит
            мгновенно, и никакое другое движение Вам не мешает. И, конечно, Вы
            никогда не можете ехать быстрее, чем указывает текущий ограничитель
            скорости.


            Входные данные

            Первая строка входного файла speed.in состоит из трех целых
            чисел: N, M, D, где N (2<=N<=150) - количество перекрестков,
            пронумерованных от 0 до N-1, M - количество дорог, D - номер
            перекрестка, в который Вы направляетесь.

            Каждая из следующих M строк входного файла описывает одну
            дорогу. Каждая строка состоит из четырех целых чисел A (0<=A<N),
            B (0<=B<N), V (0<=V<=500), L (1<=L<=500), указывающих, что дорога
            ведет из A в B, имеет ограничитель скорости V и длину L. Если V
            равно 0, это означает, что знак ограничителя скорости на этой дороге
            отсутствует (пропущен). Время перемещения по этой дороге равно
            T = L / V, если V<>0, иначе T = L / Vold, где Vold - ограничитель
            скорости, использованный последним, прежде чем Вы прибыли на этот
            перекресток. Заметим, что деление нужно осуществлять вещественное,
            чтобы избежать неправильных округлений. В начале пути Вы
            находитесь на перекрестке 0, и текущая скорость равна 70.


            Выходные данные

            Выходной файл должен содержать одну строку целых чисел,
            описывающих номера перекрестков в порядке посещения на самом быстром
            маршруте из перекрестка 0 в перекресток D, начиная с 0 и заканчивая
            D. Гарантируется единственность такого маршрута для всех тестовых
            файлов.


            Пример

            speed.in speed.out
            6 15 1 0 5 2 3 1
            0 1 25 68
            0 2 30 50
            0 5 0 101
            1 2 70 77
            1 3 35 42
            2 0 0 22
            2 1 40 86
            2 3 0 23
            2 4 45 40
            3 1 64 14
            3 5 0 23
            4 1 95 8
            5 1 0 84
            5 2 90 64
            5 3 36 40


            как раз, надо писать граф и все такое
              Задача выглядит сильно не в пользу stl ;)
              (чистый перебор с минимальным использованием простых контейнеров).

              Добавлено
              Мне задача нравится: большое число мелких объектов в динамической памяти - как раз то, где можно без особых усилий соптимизировать.
                Цитата nvm @
                Задача выглядит сильно не в пользу stl
                (чистый перебор с минимальным использованием простых контейнеров).

                обычная олимпиадная задачка. Согласен ?
                Flex Ferrum, Согласен ?

                тогда погнали... 8-)

                ЗЫ. Данные не сортированы, в добавок у boost есть "мифический" graph, может его сюда Flex Ferrum, забабашит :) В добавок, nvm, тебе нельзя будет использовать даже vector. Поэтому перед решением задачи придеться писать свое хранилище.
                  Цитата Sazabis @
                  Flex Ferrum, Согласен ?

                  Да. Единственный момент - я сейчас дома несколько безлошадный (питальник в компе погорел), по этому смогу приступить к решению не раньше, чем куплю новый.

                  Цитата Sazabis @
                  ЗЫ. Данные не сортированы, в добавок у boost есть "мифический" graph, может его сюда Flex Ferrum, забабашит

                  :yes: Я уже подумал над этим. Кстати, мы не определились с критериями присуждения победы.
                    Цитата Sazabis @
                    В добавок, nvm, тебе нельзя будет использовать даже vector. Поэтому перед решением задачи придеться писать свое хранилище.
                    Я вот не совсем понял. Дуэль же произошла из темы Java vs C++. nvm на чем будет писать - на С++ или на Java? Если на Java, то он пользуется ихними массивами. А если на С++, без stl, без библиотек, то это бред. Ведь ему и вправду придется писать свое хранилище.

                    Добавлено
                    Сорри, прочитал теперь подпись к теме. Мдя :rolleyes: бредово как-то получается.
                      Я думаю, что критерием будет:

                      1. открытый код, проведем голосование среди С++ шников, чтобы им было легче понять, поддержать, так что, пишите КРАСИВО. (И понятными сущностями, вот кстати интересно будет увидеть как сюда впишеться boost::graph :) )
                      2. Скорость выполнения, на разных компиляторах, VC6, VC7, BorlandBuilder6 со стандартным компилятором. + Еще бы CW, я думаю (что то мне он понравился после тестов trainer)
                      3. Посмотрим еще на размер экзешника
                        Цитата Leprecon @
                        А если на С++, без stl, без библиотек, то это бред. Ведь ему и вправду придется писать свое хранилище.

                        Читай цитату nvm'a в первом сообщении. С нее все и пошло.

                        Добавлено
                        Цитата Sazabis @
                        Скорость выполнения, на разных компиляторах, VC6, VC7, BorlandBuilder6 со стандартным компилятором. + Еще бы CW, я думаю (что то мне он понравился после тестов trainer)

                        Тогда надо определиться со списком целевых компиляторов, ибо от этого будет зависить набор используемых средств. Ну или хотя бы с нижней границей поддержкой стандарта.
                          Цитата Flex Ferrum @
                          Тогда надо определиться со списком целевых компиляторов, ибо от этого будет зависить набор используемых средств. Ну или хотя бы с нижней границей поддержкой стандарта.

                          будет как в жизни :lol: попробуем портировать, и бах! так что будте аккуратнее. Пишите соответсвующе. Заодно посмотрим чего больше править придеться.
                            Цитата Sazabis @
                            будет как в жизни попробуем портировать, и бах! так что будте аккуратнее. Пишите соответсвующе. Заодно посмотрим чего больше править придеться.

                            Ок. Буду иметь в виду.

                            Добавлено
                            Ограничения по памяти будем вводить?
                              Цитата Sazabis @
                              Еще бы CW, я думаю (что то мне он понравился после тестов trainer)
                              Пишите, я откомпилирую.
                              CW8 совместим с MSVC6, под него у меня собран boost 1.31
                              Сообщение отредактировано: trainer -
                                Цитата Flex Ferrum @
                                Ограничения по памяти будем вводить?

                                считаю вполне нормально, если весь граф будет в памяти. Вообще то больше памяти больше не надо? но если хотите... Не давайте лучше решать задачу динамического программировния, а не статического. Иначе требования по времени будут не актуальны.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (7) [1] 2 3 ...  6 7 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0482 ]   [ 15 queries used ]   [ Generated: 28.03.24, 17:07 GMT ]