[问题] 未知行数二维阵列读档

楼主: ericrobin   2016-03-23 21:40:58
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
问题(Question):
想要从档案读取一个二维阵列,
档案以空白为分隔, 每三段数字应该读成一列 (row)
已知的话我会
但在总列数未知的情况下, 不知道该怎么读才对
目前只能想到类似下面这样的写法,
但总会跳出: vector subscript out of range 的警告视窗而不能跑
想请问该怎么修正才是?
程式码(Code)
#include <fstream>
#include "iostream"
#include <vector>
using namespace std;
int main()
{
fstream file;
file.open("abc.txt", ios::in);
if (!file)
cout << "error! \n";
int i = 0;
vector<int> A;
vector<int> B;
vector<int> C;
while (file >> A[i] >> B[i] >> C[i]) {
i++;
}
file.close();
return 0;
}
作者: Caesar08 (Caesar)   2016-03-24 10:09:00
你是来问问题的还是来嘴砲的?
楼主: ericrobin   2016-03-24 09:06:00
为什么阵列是空的很屌阿??push_back 我是听说比较没效率 就没再研究了@@
作者: steve1012 (steve)   2016-03-24 07:39:00
好屌你阵列是空的捏
作者: IKAFIRE (没有)   2016-03-24 02:17:00
用push_back
楼主: ericrobin   2016-03-24 02:01:00
其实没一定要怎写耶 你有什么推荐的写法吗
作者: fatrabitree (胖兔子)   2016-03-24 01:41:00
你要这样写,就宣告vector的时候先给size建议你用container前都去翻一下document
楼主: ericrobin   2016-03-24 00:51:00
iostream那个好像没差XD 继续研究中...
作者: Caesar08 (Caesar)   2016-03-23 22:24:00
#include"iostream"???参考vector::emplace_back、vector::resize
作者: Clangpp (Clang++)   2016-03-24 12:45:00
麻烦请虚心求教好吗... 感觉你没有很认真想学...
作者: james732 (好人超)   2016-03-24 12:46:00
先用过push_back试试吧,不要用听说的
作者: ronin728 (浪人)   2016-03-24 13:10:00
有点理工精神好吗?"听说"效率差?所以就没"研究"?你连研都没有还来说究push_back每家的实作都不大相同,但是效率不会差到拿来连这种应用场景都做不到..真的需要优化,以后再说好吗?连做Benchmark、RTFM都懒,那用什么工具都没效率好吗
作者: bibo9901 (function(){})()   2016-03-24 13:16:00
我觉得vector效率也很差
作者: ronin728 (浪人)   2016-03-24 13:20:00
我觉得std::cout的效率也很差www
作者: bben900911 (Ben)   2016-03-24 13:21:00
对阿 怎么不用printf(ry
作者: ronin728 (浪人)   2016-03-24 13:24:00
楼上,我都用内嵌组合语言int 0x21,因为printf太慢了
作者: suwako   2016-03-24 13:39:00
等你真的有效率的需求 再来考虑效率问题好吗
作者: bben900911 (Ben)   2016-03-24 15:38:00
洨弟输惹QQ
作者: suwako   2016-03-24 17:10:00
你的资料量这么大 那你需要先用std::vector::max_size()看看vector最大的容量能不能合乎你的要求 不行的话就还是用array吧
楼主: ericrobin   2016-03-24 17:17:00
谢谢 这功能我会试试看 后来我用getline找出行数就顺利做下去了 所以应该是没这部分的问题但还是满想知道该怎么将阵列逐元素读到最后一行自己停
作者: suwako   2016-03-24 17:27:00
你是指读阵列还是读档案?
作者: ronin728 (浪人)   2016-03-24 22:48:00
档案eof()、vector end()-1IO效率问题,用硬件读取速度、程式读取速度、文件大小算一下,不会差太多的话不是问题
楼主: ericrobin   2016-03-25 15:10:00
我是从档案读的@@ ; 楼上方法我会试试 谢谢

Links booklink

Contact Us: admin [ a t ] ucptt.com