高手请进,list遍历

goodcook 2008-11-03 03:15:48
lst是一个vector类型的容器,而vec是一个field结构类型的容器。
如此嵌套的容器结构,使用迭代器,如何依次输出list中每个vector元素?

struct
{ string name;
string value;
} field;

vector<field> vec;
vector<field>::const_iterator vec_ite;
list<vector<field> > lst;
list<vector<field> >::const_iterator lst_ite;

/*
我用2次for loop,可是输出全是最后一个vector里的值。

for(lst_ite=lst.begin();lst_ite!=lst.end();++lst_ite)
{ for(vec_ite=vec.begin();vec_ite!=end();++vec_ite)
{
cout<<name.c_str()<<" = "<<value.c_str()<<endl;
}
}
*/
...全文
106 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
License2Kill 2008-11-03
  • 打赏
  • 举报
回复
测试下签名
goodcook 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vk2211 的回复:]
for(lst_ite=lst.begin();lst_ite!=lst.end();++lst_ite) 
{
for(vec_ite=(*lst_ite)begin();vec_ite!=( *lst_ite )end();++vec_ite)
{
cout < <name.c_str() < <" = " < <value.c_str() < <endl;
}
}
这样大概就OK了
[/Quote]

对哦,原来是这样。
我试过了,结果正确。
非常感谢!
vk2211 2008-11-03
  • 打赏
  • 举报
回复
for(lst_ite=lst.begin();lst_ite!=lst.end();++lst_ite)
{
for(vec_ite=(*lst_ite)begin();vec_ite!=(*lst_ite)end();++vec_ite)
{
cout<<name.c_str()<<" = "<<value.c_str()<<endl;
}
}
这样大概就OK了
goodcook 2008-11-03
  • 打赏
  • 举报
回复
for(vec_ite=vec.begin();vec_ite!=end();++vec_ite)

我估计是和vec_ite指向的位置有关。
pubb1986 2008-11-03
  • 打赏
  • 举报
回复
cout<<name.c_str()<<" = "<<value.c_str()<<endl;

直接name.c_str() value.c_str() 来用的吗?
是不是应该显示vector中的东西呢?

65,210

社区成员

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

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