return Graph_iterator_Vertex(Vertexs.begin());
我不明白爲什麼這行被稱爲複製構造函數,雖然有我的構造函數與參數。爲此設計專門編寫的參數構造函數參數。 我發現的關於類似問題的所有內容都是使用typename。但它並沒有解決我的問題。使用迭代器模板類作爲函數的參數
struct Graph_iterator_Vertex
{
private:
typename std::vector<Vertex<Type_Of_Value_Vertex, Type_Of_Value_Edge>>::iterator iterator;
public:
Graph_iterator_Vertex(typename std::_Vector_const_iterator<std::vector<Vertex<Type_Of_Value_Vertex, Type_Of_Value_Edge>>> iterator_)
{
iterator=iterator_
}
};
const Graph_iterator_Vertex begin(void) const
{
return Graph_iterator_Vertex(Vertexs.begin());
}
其中
std::vector<Vertex<Type_Of_Value_Vertex, Type_Of_Value_Edge>> Vertexs;
錯誤:
error C2440: <function-style-cast>: can not be converted std::_Vector_const_iterator<_Myvec>"in "Graph<Type_Of_Value_Vertex,Type_Of_Value_Edge>::Graph_iterator_Vertex"
瞭解'iterator'和'const_iterator'之間的區別。也知道'const'成員函數(例如代碼中的'begin')對成員數據(例如'Vertexs';注意它會改變它的常量!)。 – Nawaz