Пушыстый (_winnie) wrote,
Пушыстый
_winnie

cut fields faster in text file

Написал аналог утилиты cut, вырезающей столбцы из tab-delimited файла.
Работает в 2-3 раза быстрее стандартного cut и в 5-10 раз быстрей awk -F '\t' (зависит от системы), в 50 раз быстрей питона.
Как и оригинальный cut, не умеет переставлять столбцы местами, только выделяет часть из них.

http://dobrokot.ru/dump/cut_field_fast.cpp

Довольно противно на C/C++ писать то что на питоне получается в одну строку, типа sorted(set(int(x) for x in command_line.split(','))), и самое обидное что такого тупого кода парсинга командной строки - больше, и он сложней чем основной алгоритм...

Tags: c++, release, text
Subscribe

  • π++

    в С++ нет числа π в стандартной библиотеке. M_PI/_USE_MATH_DEFINES зачем-то сломали в g++ при использовании -std=c++11, а взамен ничего не…

  • Неявно квадратичный алгоритм

    vector<int> v; for (int i = 0; i < 1000*1000; ++i) { v.reserve(v.size() + 10); v.push_back(i); } Если удалить строчку с reserve, то…

  • Чем дальше в лес, тем толще тоньше

    Сегодня осознал удивительное и новое для меня: добавление нового параметра для предсказания в линейную модель - может поменять смысл старых…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 61 comments

  • π++

    в С++ нет числа π в стандартной библиотеке. M_PI/_USE_MATH_DEFINES зачем-то сломали в g++ при использовании -std=c++11, а взамен ничего не…

  • Неявно квадратичный алгоритм

    vector<int> v; for (int i = 0; i < 1000*1000; ++i) { v.reserve(v.size() + 10); v.push_back(i); } Если удалить строчку с reserve, то…

  • Чем дальше в лес, тем толще тоньше

    Сегодня осознал удивительное и новое для меня: добавление нового параметра для предсказания в линейную модель - может поменять смысл старых…