使用c++开发的csv文件解析类。
namespace cpp {
namespace str {
/** 高性能的 csv 解析 */
class csv_parser {
public:
typedef std::pair string_t;
typedef std::vector fields_t;
csv_parser(const char* input, char delimiter);
csv_parser(const std::string& input, char delimiter);
csv_parser(const char* begin, const char* end, char delimiter);
// 字段数量
size_t size() const;
// 字段数量是否为空,等价于 size() == 0
bool empty() const;
// 返回第 index 个字段。避免拷贝构造。注意,返回的 string_t 不包括 \0
const string_t& at(size_t index) const;
// 返回第 index 个字段。需要字符串构造,用于对性能要求不高的环境
std::string operator[](size_t index) const;
// 返回原始的输入行
const char* input() const;
// 返回字段偏移信息
const fields_t& field() const;
private:
csv_parser(const csv_parser& rhs);
csv_parser& operator= (const csv_parser& rhs);
void parse();
const char* begin_;
const char* end_;
const char delim_;
fields_t field_;
};
}
}
2021-10-28 18:04:07
2KB
c++
csv