c++ - C++ 中的数据处理

标签 c++ csv

我正在开发一个程序,我的“数据库”是一些 .csv 文件。

我在 .csv 中有一个对象列表,其中包含每个对象的一些信息。这是处理“数据”的最合适的方式。

  • 使用 fstream,这意味着每次我想要修改数据,或者我想要读取某些内容时,我都会使用 fstream 工具直接处理我的文件
  • 或者,在程序开始时,我会将数据加载到 vector 中,在 vector 上读取、写入,然后在程序结束时删除以前的文件并加载新文件。

在性能方面会有不同吗?考虑到对象数量众多。

最佳答案

我认为这更多的是一种组合,而不是选择 A 或 B。特别是仅选择 A 是不安全的,因为多个组件可以同时访问该文件。另外,如果有很多更新,那么每次都使用流可能会使您的代码变得非常慢。

因此,我认为您应该使用 B,但也要注意以安全的方式保存数据的实现(将数据写入文件中)。

关于数据结构,这个要看用途。这里要问的一个重要问题是是否有很多插入和删除。如果是这种情况,那么使用 list 会更有效。而不是 vector ,因为列表提供即时插入和 vector不适合此目的。

如果数据包含唯一属性并且需要快速查找,那么哈希或映射会更合适。

关于c++ - C++ 中的数据处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42356431/

相关文章:

c++ - QTransform::setRotation 与 Q_PROPERTY

c++ - 在main中调用类的函数

c++ - 在写入高带宽数据流时如何最好地管理 Linux 的缓冲行为?

c++ - vulkan vkresult 链接器错误 msvc

c++ - 在 C 或 C++ 中以编程方式删除非空目录

python - 嵌套数据到 csv python

csv - 使用 Trino(以前称为 PrestoDB)将非 varchar 数据导出到 CSV 表

powershell - 根据匹配的列拆分 csv 文件

javascript - 如何在 nodejs json2csv 中的现有 csv 文件中追加新行?

python - 如何在 Python 中保留 CSV 文件中的引号?