C++ c++;读取未知大小的矩阵

C++ c++;读取未知大小的矩阵,c++,file,matrix,size,sparse-matrix,C++,File,Matrix,Size,Sparse Matrix,这是我的问题,我需要从文本文件中读取一个特定的int矩阵,而不知道它的大小 例如,假设: “matrix.dsv” 1,0,1,0,0,0,1,0 0,1,1,1,1,1,1,1,1 0,0,0,0,0,0,0,0,0 0,0,0,1,0,0,0,0,0 有没有办法不导入矩阵就知道矩阵的大小 由于我将根据稀疏性选择不同的记忆方法(向量、稀疏矩阵、全矩阵),是否也有计算非零元素的方法 非常感谢(很抱歉问了这个蹩脚的问题,我对管理文件很陌生!) 编辑: 谢谢你! 最后一个问题,cin对生产线的末端有

这是我的问题,我需要从文本文件中读取一个特定的int矩阵,而不知道它的大小

例如,假设:

“matrix.dsv”

1,0,1,0,0,0,1,0
0,1,1,1,1,1,1,1,1
0,0,0,0,0,0,0,0,0
0,0,0,1,0,0,0,0,0

有没有办法不导入矩阵就知道矩阵的大小

由于我将根据稀疏性选择不同的记忆方法(向量、稀疏矩阵、全矩阵),是否也有计算非零元素的方法

非常感谢(很抱歉问了这个蹩脚的问题,我对管理文件很陌生!)

编辑: 谢谢你! 最后一个问题,cin对生产线的末端有何反应? 或者更好,当我完成一行时,如何增加一个索引?
谢谢;)

不幸的是,除非文件名或文件开头有信息,否则必须读取文件才能知道矩阵的大小

这个问题有点宽泛。
std::vector
应该是一种方法,因为您可以使用
push_back()
动态添加元素以实现稀疏或密集存储。喜欢扁平线性(一维)存储。
处理文件应该是一次通过,您逐个元素读取,检查并添加到计数器(如果为零)。
当到达文件末尾并知道矩阵的大小时,可以重新排列数据

如果可以的话,如果你在做线性代数的话,你应该尝试使用已知的库来创建方便的矩阵类和方法,比如Eigen,Armadillo