На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Закрыто archimed7592 11-03-2008: Лимит страниц. Продолжаем Delphi vs C++

Страницы: (117) « Первая ... 29 30 [31] 32 33 ...  116 117  ( Перейти к последнему сообщению )  
> Delphi vs C++ , Часть 1
    Цитата Астарот @
    А плюсисты трудозатраты на создание кнопки уже посчитали?

    это ты у мсявок спроси. они же кнопки создавали :D на плюсах :D
      Цитата Smike @
      Я кстати предлагал бенчмарк STL string и AnsiString в Delphi. Кто-то откликнулся?
      методику или пример кода предложить можешь? откликнемся
        Цитата Smike @
        Я кстати предлагал бенчмарк STL string и AnsiString в Delphi. Кто-то откликнулся?

        И что предлагаешь бенчмаркить? :whistle:
          archimed7592 - сможешь реализовать простейшую задачу, которая в
          PHP выполняется одной функцией? Задача простая: удалить повторящиеся текстовые
          строки из большого тектового массива.. в строк этак под 100 тысяч. ;)
            n0p, во-первых, мы здесь про дельфи vs с++ говорим, во-вторых, формализуй(уточни) условие и поехали...
              archimed7592 - ну вот! в первую очередь подобными показательными выступлениями, нехило показать превосходство nativ'ных языков над интерпретируемыми :)
                n0p, формализуй условие, или скажи о какой php-фунции ты говоришь...

                Добавлено
                Цитата n0p @
                нехило показать превосходство nativ'ных языков над интерпретируемыми :)
                думаю, что native-ф-ция из php по быстродействию не уступит твоей реализации на delphi ;)
                  Цитата archimed7592 @
                  методику или пример кода предложить можешь? откликнемся

                  Цитата Мяут @
                  И что предлагаешь бенчмаркить? :whistle:

                  О, деловой разговор! У меня даже есть одна интересная комплексная идея. Сейчас опишу.
                    Цитата n0p @
                    archimed7592 - сможешь реализовать простейшую задачу, которая в

                    Тестовые данные приложи, плз...

                    Добавлено
                    Цитата Smike @
                    О, деловой разговор! У меня даже есть одна интересная комплексная идея. Сейчас опишу.

                    Давай.
                      Цитата n0p @
                      archimed7592 - сможешь реализовать простейшую задачу, которая в
                      PHP выполняется одной функцией? Задача простая: удалить повторящиеся текстовые
                      строки из большого тектового массива.. в строк этак под 100 тысяч. ;)
                      ExpandedWrap disabled
                        #include <cstddef>
                        #include <istream>
                        #include <ostream>
                        #include <iostream>
                        #include <string>
                        #include <set>
                        #include <iterator>
                        #include <algorithm>
                         
                        class getline_iterator
                            : public std::iterator < std::input_iterator_tag, std::string >
                        {
                            std::istream *stream;
                            std::string value;
                        public:
                            getline_iterator ()
                                : stream (NULL)
                            {
                            }
                            
                            getline_iterator (std::istream &stream)
                                : stream (&stream)
                            {
                                std::getline (*this->stream, value);
                            }
                                
                            bool operator == (const getline_iterator &rhs) const
                            {
                                return stream->eof ();
                            }
                            
                            bool operator != (const getline_iterator &rhs) const
                            {
                                return !operator == (rhs);
                            }
                            
                            const std::string &operator * () const
                            {
                                return value;
                            }
                            
                            getline_iterator &operator ++ ()
                            {
                                std::getline (*stream, value);
                                return *this;
                            }
                            
                            getline_iterator operator ++ (int)
                            {
                                getline_iterator temp (*this);
                                operator ++ ();
                                
                                return temp;
                            }
                            
                            const std::string* operator ->() const
                            {
                                return &value;
                            }      
                        };
                         
                        void produce (std::istream &sin, std::ostream &sout)
                        {
                            typedef std::set < std::string > container;
                            container c ((getline_iterator (sin)), (getline_iterator ()));
                            std::copy(
                                c.begin (),
                                c.end(),
                                std::ostream_iterator < std::string > (sout, "\n"));
                        }
                         
                        int main ()
                        {
                            produce (std::cin, std::cout);
                         
                            return 0;
                        }
                      Сообщение отредактировано: archimed7592 -
                        В общем идея такая. Есть список строк с разделителями, например:
                        ExpandedWrap disabled
                          Категория1;Подкатегория1;Элемент1
                          Категория1;Подкатегория1;Элемент2
                          Категория1;Подкатегория1;Элемент3
                          Категория1;Подкатегория2;Элемент1
                          Категория1;Подкатегория2;Элемент2
                          Категория1;Подкатегория3;Элемент1
                          Категория2;Подкатегория1;Элемент1
                          Категория2;Подкатегория1;Элемент2
                          Категория3;Подкатегория1;Элемент1
                          Категория3;Подкатегория2;Элемент1


                        Задача: отпарсить заданный файл списка и вывести в другой файл в виде дерева:
                        ExpandedWrap disabled
                          Категория1
                            Подкатегория1
                              Элемент1
                              Элемент2
                              Элемент3
                            Подкатегория2
                              Элемент1
                              Элемент2
                            Подкатегория3
                              Элемент1
                          Категория2
                            Подкатегория1
                              Элемент1
                              Элемент2
                          Категория3
                            Подкатегория1
                              Элемент1
                            Подкатегория1
                              Элемент2

                        Пока можно потренироваться на приведенном мной фрагменте, но для бенчмарков приведу более крупный фрагмент текста.

                        Таким образом мы протестируем и работу со строками, и строковые контейнеры. Главное условие: не использовать строки с завершающим нулем, только STL::string и Delphi.AnsiString.
                        Ну что, идет?
                        Сообщение отредактировано: Smike -
                          дерево - табуляции?
                          могут ли подкатегории чередоваться (1,1,2,2,3,3,1,3,3,2), фиксировано ли кол-во вложенностией(3 в данном случае)? имеет ли значение порядок вывода?
                            Цитата archimed7592 @
                            дерево - табуляции?

                            2 пробела

                            Цитата archimed7592 @
                            могут ли подкатегории чередоваться (1,1,2,2,3,3,1,3,3,2)

                            Естественно, список категорий, подкатегорий и элементов идет в произвольном порядке, то есть может быть как я привел, а может быть и:
                            ExpandedWrap disabled
                              Категория3;Подкатегория2;Элемент1
                              Категория1;Подкатегория1;Элемент1
                              Категория1;Подкатегория1;Элемент2
                              Категория2;Подкатегория1;Элемент1
                              Категория1;Подкатегория2;Элемент1
                              Категория1;Подкатегория2;Элемент2
                              Категория1;Подкатегория3;Элемент1
                              Категория2;Подкатегория1;Элемент2
                              Категория3;Подкатегория1;Элемент1
                              Категория1;Подкатегория1;Элемент3

                            и даже хуже :whistle:

                            Количество вложенностей - 3. Хотя, если хочется, можно сделать и неограниченное :rolleyes:

                            Цитата archimed7592 @
                            имеет ли значение порядок вывода?

                            О, в качестве дополнительного условия могу предложить сделать опциональную возможность сортировки дерева при выводе в конечный файл. По-моему было бы интересно сравнить результаты в случае использования упорядоченных и неупорядоченных списков.
                              Итак, жду пожеланий и предложений, после этого пишу окончательные условия и даем старт!
                                т. е. на каждой строчке ровно по N токенов, разделённых ';' без доп. случаев аля
                                "Категория3bla-bla; sdkljf sdf s ";Подкатегория2;Элемент1

                                ??

                                под порядком вывода я имел ввиду обязательно ли группировать данные?
                                но и за это уточнение спасибо :)
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (117) « Первая ... 29 30 [31] 32 33 ...  116 117
                                Закрыто archimed7592 11-03-2008: Лимит страниц. Продолжаем Delphi vs C++



                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0652 ]   [ 15 queries used ]   [ Generated: 14.08.25, 15:21 GMT ]