关于 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> * edges;你这里元素是region_edge对象
region_edge * edge = new region_edge();
edges->push_back(edge );这里压入的是指针改下:edges->push_back(*edge );
另外:向pengzhixi大哥学习