解析C++中逗号分隔的变量
Parsing comma separated variables in C++
我正在尝试编写一个读取 csv 文件并返回内容的函数,我认为解决方案只是一个简单的二维数组,但我能找到的唯一信息是,这不仅令人皱眉,而且从C++函数返回二维(或更多)数组的唯一方法涉及预先确定大小。
我不喜欢预定义数组大小的想法,因为在此特定上下文中,我需要设置一个数组来容纳 256TiB 的数据,因为我在读取之前无法知道文件大小。
我想知道的是这样做的正确方法是什么?
细节将取决于您正在做什么,但常见的解决方案是std::vector
一个struct
(其中包含字段):
// the CSV fields will be read into the struct's data members
struct record
{
std::string name;
std::string address;
unsigned age;
// ...
};
std::vector<record> read_csv(std::istream& is)
{
std::vector<record> records;
std::string line;
while(std::getline(is, line))
{
record r;
// populate r with CSV data in line
records.push_back(r); // add record to vector
}
return records;
}
您可以使用列表数组的列表数组。
读取一行,拆分,创建一个列表数组。
将此列表数组添加到行的列表数组中,例如 cvs 列表数组。
您将能够使用 csv[行][列] 访问该元素
cvs.count() 是行数,cvs[row].count() 是行中的 elemets 数。
容易。。。祝你好运!
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 将数组的地址分配给变量并删除
- 为"adjacent"变量赋值时出现问题
- enum是C++中的宏变量还是整数变量
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 用C++中的一个变量定义一个常量
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 你能重载对象变量名本身返回的内容吗
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- 如何将整数值解析为逗号分隔字符串中的单独 int 变量?
- 使用运算符将分隔的输入分隔>>变量
- 初始化几个用逗号","分隔的变量
- 逗号分隔在声明变量时如何起作用
- 带分隔标头的类:只能看到成员变量的初始化值
- C++中将不同类型的变量列表连接到逗号分隔字符串的最快方法是什么?
- 逗号分隔变量定义中关系前的序列
- 解析C++中逗号分隔的变量
- 对于二进制数据,哪个性能更高:将整个对象写入文件或分隔变量(无对象)
- 将字符串转换为以逗号(0,07)分隔的双变量