1
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" 
4

1 に答える 1

1

あなたが使用する必要があります

std::vector<Vertex<Type_Of_Value_Vertex, Type_Of_Value_Edge>>::const_iterator

それ以外の

std::_Vector_const_iterator<std::vector<Vertex<Type_Of_Value_Vertex, Type_Of_Value_Edge>>>

関数パラメーターのタイプとして。

于 2013-10-14T17:00:01.850 に答える