名單我有這樣的代碼:遍歷向量C++
#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)中'operator ='不匹配。 ) - > std :: vector < _Tp,_Alloc> ::以_Tp = std :: list開始,_Alloc = std :: allocator>,std :: vector < _Tp,_Alloc> :: iterator = __gnu_cxx :: __ normal_iterator * ,性病::矢量>>,類型名稱的std :: _ Vector_base < _TP,_Alloc> :: _ Tp_alloc_type ::指針=標準::名單*」 DejkstraAlg.cpp
謝謝 最佳
使用'auto'的迭代器也將工作,和可能會更整潔。 –
他沒有在他的標籤中提到C++ 11,所以我省略了這一點。將添加ALT版本:) –
基於範圍的循環將使C++ 11部分更漂亮。 – YoungJohn