有没有这种定义方法?typedef list < vector < CurvePoint * >::iterator * > LIST_2_ITERATER ;

doyd 2003-10-17 12:16:54
有没有这种定义方法?typedef list < vector < CurvePoint * >::iterator * > LIST_2_ITERATER ;

我想把vector < CurvePoint * >中的点和它的iterator信息一起保存起来,这样,在以后调用LIST_2_ITERATOR可以在LIST_2_ITERATER::iterator vIterIter中找到vector < GmContourCurvePoint * >::iterator vIterNext, 由vIterNext找到GmContourCurvePoint* pPoint

代码如下,但是不对:

typedef list < vector < CurvePoint * >::iterator * > LIST_2_ITERATER ;

//////////////////////////////////////////

vector < CurvePoint * > m_vectorAllPoints ;
LIST_2_ITERATER listPoints ,
vector < CurvePoint * >::iterator vIterNext ;
CurvePoint * pNextPoint ;

///////////////////////

for ( vIterNext = m_vectorAllPoints.begin () ;
vIterNext != m_vectorAllPoints.end () ;
vIterNext ++ )
{
listPoints.push_back ( &vIterNext ) ; //????同时保存iterator信息
}

////////////////

LIST_2_ITERATER::iterator vIterIter ;
vector < CurvePoint * >::iterator vIterGrid ;

for ( vIterIter=listPoints.begin ; vIterIter != listPoints.end () ; vIterIter ++ )
{
vIterNext = ** vIterIter ;

pNextPoint = * vIterNext ;
// pNextPoint就是要找的点,能找到么?
// ???????????????
}
...全文
65 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
doyd 2003-10-23
  • 打赏
  • 举报
回复

typedef list < vector < CurvePoint * >::iterator * > LIST_2_ITERATER ;
改成
typedef list < vector < CurvePoint * >::iterator > LIST_2_ITERATER ;

搞定了


同意 rtdb(东临碣石) (*)
我保证了只读,所以可以用
rtdb 2003-10-17
  • 打赏
  • 举报
回复
最好不要在容器外部保存iterator,除非你真的知道自己在做什么。
当容器有插入或删除操作时, iterator很有可能失效。
rtdb 2003-10-17
  • 打赏
  • 举报
回复
最好不要在容器外部保存iterator,除非你真的知道自己在做什么。
当容器有插入或删除操作时, iterator很有可能失效。
蝎子i软件 2003-10-17
  • 打赏
  • 举报
回复
没想到显示的效果是如此...

解决办法:

typedef list < vector < CurvePoint * >::iterator * > LIST_2_ITERATER ;
改成
typedef list < vector < CurvePoint * >::iterator > LIST_2_ITERATER ;
蝎子i软件 2003-10-17
  • 打赏
  • 举报
回复
你想
  listPoints.push_back ( &vIterNext ) ; //????同时保存iterator信息
但是,由于定义如下:
  LIST_2_ITERATER listPoints,
  listPoints保存的是iterator的"地址"信息!不是iterator信息.

解决办法:
typedef list < vector < CurvePoint * >::iterator * > LIST_2_ITERATER ;
                        ~~去掉!

good luck!

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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