Я ищу хорошую современную библиотеку C++ CSV, в основном для синтаксического анализа.
Требуемые функции:
Желаемая функция:
Две библиотеки, которые соответствуют требованиям, и несколько желаемых функций:
Я начал тестировать их несколько дней назад, поэтому не могу подтвердить все характеристики, но могу указать на детали, определяющие мой выбор:
Rapidcsv - это то, что я сейчас использую, он позволяет загружать данные в виде векторов, и вы можете получать векторы-строки, которые являются общими, и векторы-столбцы, это то, что я ищу. У него есть две недостающие функции, для которых я сделал вилку и предлагаю (очень просто) улучшения: 1 обработка извлечения векторов только элементов char, таких как std::vector (мои данные состоят из пространственных временных рядов, дискретизированных с использованием SAX, что приводит к символические значения биннинга, например, от a до z), а 2 имеют функции, которые возвращают количество столбцов и строк.
CSVstream извлекает данные в виде карты fector, что хорошо для CSV, но в моем случае имена столбцов не важны, а std:.map не сохраняет порядок вставленных данных, и в моем случае мне нужно сохранить исходный порядок столбцов потому что позиции столбцов представляют пространственное положение - ОБНОВЛЕНИЕ: это может быть новая функция: https://github.com/awdeorio/csvstream/issues/13#issuecomment-350701247
Fast C++ CSV Parser нельзя использовать в моем случае, потому что количество столбцов должно быть известно во время компиляции.
Эта оценка является очень начальной, библиотеки деревьев кажутся мне очень хорошими, поэтому я предлагаю протестировать их, чтобы увидеть, что лучше всего соответствует вашим потребностям.
айнпоклум
Кампизано
Кампизано