假定现在有一个CSV文件,里面每一行都有不相同的数量的数据,每行开头的四位数的首位数字代表种类, 4是书本, 7 是电影. 但是排列毫无规律(有很多行)
如果是电影,则 每行数据是 4XXX 序列号 电影名 年份 导演姓 导演名 售价
如果是书本, 则 每行数据是 7XXX 序列号 书名 作者名 年份 种类代号 搜索号 售价 (X代表某数字)
例如:
1221 21321411 书名 作者名 2015 H 931 16
7123 12345678 电影名 2015 导演姓 导演名 12
……
现在想实现先读取数据, 然后用一个足够大的动态数组去存储所有数据,最后按照书本和电影分别存储到对应的数组里面
想法是用一个类来承接那个有所有数据的数组(或则不一定是数组?),然后用两个别的类去继承它然后选择性读取,但是一直无法实现。
可以用两个vector<vector<string>> 变量,一个为films,一个为books。
string line = getline();split 函数自己实现
void split(std::string& s, std::string& delim,std::vector< std::string >* ret)假如不能使用vector呢?有其他实现的方法吗?
而且似乎没有实现一个足够大的数组将所有数据包含
先说将所有数据包含的那个数组,可以先将getline的内容存放到一个vector allArrays;中。
如果不使用vector,那就使用指针、数组、链表等,大概就是自己实现一个自己需要的vector的意思。开辟空间用malloc、realloc、new、delete等。