读书人

关于 stl 的 listlt;gt;iterator 的声明有

发布时间: 2012-03-18 13:55:39 作者: rapoo

关于 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大哥学习

读书人网 >C++

热点推荐