首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于 stl 的 list<>iterator 的声明有关问题,如何会变成 list<int>iterator

2012-03-18 
关于 stl 的 list...::iterator 的声明问题,怎么会变成 listint::iterator迭代器list。。。::iteratori

关于 stl 的 list<...>::iterator 的声明问题,怎么会变成 list<int>::iterator
迭代器 list<。。。>::iterator ite 怎么一直被系统识别成 list<int>::iterator ? 下面是我的主要代码:

typedef struct { //一个结构体
float w;
int a, b;
} region_edge;

list<region_edge> * create_region_edge(。。。。) //返回一个list<region_edge>
{
list<region_edge> * edges; //生成list
for(..)
{
  region_edge * edge = new region_edge();
  edges->push_back(edge ); //添加元素
  ...
}
  return edges;
}

void merge(....)
{
 list<region_edge>::iterator ite=region_edge->begin(); //有问题
 ...
}
生成的迭代器 list<region_edge>::iterator ite 怎么被系统识别成 list<int>::iterator ?


[解决办法]
list<region_edge>::iterator ite=region_edge->begin(); //有问题
是有问题
应该是
list<region_edge>::iterator ite=edge->begin(); 


[解决办法]

探讨

list<region_edge>::iterator ite=region_edge->begin(); //有问题
是有问题
应该是
list<region_edge>::iterator ite=edge->begin();


[解决办法]
list<region_edge> * edges;你这里元素是region_edge对象
region_edge * edge = new region_edge();
edges->push_back(edge );这里压入的是指针改下:edges->push_back(*edge );

另外:向pengzhixi大哥学习

热点排行
Bad Request.