【发布时间】:2013-11-08 11:14:18
【问题描述】:
我有这个代码:
#include <iostream>
#include <vector>
#include <list>
using namespace std;
class Graph {
public:
//Create graph with n nodes
Graph(int size);
~Graph();
//Initialize graph
void InitializeGraphWithRandomNum();
private:
vector <list <int*> > *graph;
};
void Graph::InitializeGraphWithRandomNum() {
//Here I want to iterate
for (int i=0; i< graph->size(); i++) {
std::list <int*>::iterator it;
for (it = graph[i].begin(); it< graph[i].end();++it) {
..........
}
}
}
这里出了点问题。它说
'it = (((Graph*)this)->Graph::graph + ((unsigned int)(((unsigned int)i) * 12u)))->std 中的 'operator=' 不匹配::vector<_tp _alloc>:: 以 _Tp = std::list, _Alloc = std::allocator >, std::vector<_tp _alloc>::iterator = __gnu_cxx::__normal_iterator*, std::vector 开头>>, 类型名 std::_Vector_base<_tp _alloc>::_Tp_alloc_type::pointer = std::list*' DejkstraAlg.cpp
谢谢 最好的
【问题讨论】: