求教一个可以根据顺序访问不同结构的办法

stef3390 2011-11-04 03:26:19
比如说我定义了2个不同的结构

struct test1{
};

struct test2{
};

vector<test1> save_test1;
vector<test2> save_test2;


现在我从一个文本里按行将数据读入到这两个结构, 每一行要么是test1, 要么是test2.

读完之后我想知道有没有什么办法可以将文本里的行号当索引, 像数组一样可以既可以顺序访问, 又可以随机访问这些结构
...全文
101 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
stef3390 2011-11-05
  • 打赏
  • 举报
回复
下班的时候糊里糊涂了.......
[Quote=引用 13 楼 taodm 的回复:]

楼主够搞笑。你要能把
xxxx p = Get(index);
或者Get(index).xxx怎么来判断类型的真实代码写出了,我就给你实现那个get

引用 12 楼 stef3390 的回复:
引用 10 楼 taodm 的回复:

楼主啊,假设有办法的,那你准备怎么使用它们?
xxxx p = Get(index);
p的类型你准备写啥?


这样我就可以根据Get……
[/Quote]
taodm 2011-11-04
  • 打赏
  • 举报
回复
楼主够搞笑。你要能把
xxxx p = Get(index);
或者Get(index).xxx怎么来判断类型的真实代码写出了,我就给你实现那个get

[Quote=引用 12 楼 stef3390 的回复:]
引用 10 楼 taodm 的回复:

楼主啊,假设有办法的,那你准备怎么使用它们?
xxxx p = Get(index);
p的类型你准备写啥?


这样我就可以根据Get(index).xxx来判断是什么类型了
[/Quote]
stef3390 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 taodm 的回复:]

楼主啊,假设有办法的,那你准备怎么使用它们?
xxxx p = Get(index);
p的类型你准备写啥?
[/Quote]

这样我就可以根据Get(index).xxx来判断是什么类型了
yujie_v 2011-11-04
  • 打赏
  • 举报
回复
既然两个类都表示某一行,你必须有标示符记录类的归属,或者使用多态实现
taodm 2011-11-04
  • 打赏
  • 举报
回复
楼主啊,假设有办法的,那你准备怎么使用它们?
xxxx p = Get(index);
p的类型你准备写啥?
stef3390 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 powtxt 的回复:]

我想你用一个vector比较好
class base
class test1 : public base
class test2 : public base
vector<base*> save_test
[/Quote]

这样可以在vector里保存不同的结构吗?
stef3390 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ken_scott 的回复:]

得用二进制的方式将结构写到文本(或从文本读出)吧, 跟行号之行的有什么关系, 没明白
[/Quote]

我说文本那就是不是二进制文件了, 读入读出一样可以选择文本的方式啊
stef3390 2011-11-04
  • 打赏
  • 举报
回复
我说得很清楚了吧, 比如行1的数据保存在哪个vector的第几个, 行10的数据保存在哪个vector的第几个. 用文本里的行号来索引.
ken_scott 2011-11-04
  • 打赏
  • 举报
回复
得用二进制的方式将结构写到文本(或从文本读出)吧, 跟行号之行的有什么关系, 没明白
luciferisnotsatan 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 stef3390 的回复:]

可能是我没说清楚, 我需要的是用文本里的行号来索引这些结构

比如line[1], line[2]...但是我不知道line[1]是保存在save_test1里还是save_test2里
[/Quote]
不是你自己读完后,放到1或2里的么?怎么会不知道是哪个?
不然就两个都读出来,判断下是哪个。
如果你自己都不知道判断规则是什么,那就只能问上帝/真主/佛祖了
powtxt 2011-11-04
  • 打赏
  • 举报
回复
我想你用一个vector比较好
class base
class test1 : public base
class test2 : public base
vector<base*> save_test
WaistCoat07 2011-11-04
  • 打赏
  • 举报
回复
完全看不懂
stef3390 2011-11-04
  • 打赏
  • 举报
回复
可能是我没说清楚, 我需要的是用文本里的行号来索引这些结构

比如line[1], line[2]...但是我不知道line[1]是保存在save_test1里还是save_test2里
WaistCoat07 2011-11-04
  • 打赏
  • 举报
回复
vector支持[]操作符
soso save_test1[0] save_test1[100]是合法的,你只需要判断下越界问题 vector.size();

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧