嗨,我有一些私有(private)成员的C++类,如下所示

    template <typename V, typename E>
    class Vertex
    {
     public:
      Vertex();
      ~Vertex();
      typedef std::pair<int, E> edgVertPair;
      typedef std::vector<edgeVertPair> vectEdges;
      void setVertexID(int data);
      int getVertexID();
      void setEdgeVertPair(int vertID, E edge);
      edgVertPair getEdgeVertPair();
      void setEdgeList(edgeVertPair edgeVert);
      vectEdges getEdgeList();
    private:
      int vertexID;
      edgVertPair evp;
      vectEdges edgeList;
    };

现在我想创建一对,例如
evp.first="someint";evp.second="somestring";
然后将此evp推送到edgeList,即edgeList.push_back(evp);
现在问题出在setter函数中,我做了这样的事情:
    template<typename V, typename E>
    void Vertex<V, E>::setEdgeVertPair(int vertID, E edge){
            ...populate evp;...
    }

现在我不知道如何用vertID,edge填充evp对。

最佳答案

使用std::make_pair填充evp对。

http://www.cplusplus.com/reference/std/utility/make_pair/

关于c++ - 如何在C++中初始化类的私有(private)成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9754228/

10-09 03:25