c++ - C++中如何初始化类的私有(private)成员

标签 c++ std-pair

你好,我有一个 C++ 类,其中包含一些私有(private)成员,如下所示

    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/

相关文章:

c++ - 糟糕的编码习惯? && 条件下的预增量

c++ - 在循环中从 unordered_set 中删除元素时崩溃

c++ - 如何在 C++ 中访问对?

C++ std::transform vector of pairs->first to new vector

c++ - 标准对初始化

c++ - 释放一对 vector 中对象的内存

c++ - glDrawElements() 在无效情况下返回 GL_INVALID_ENUM

c++ - 在 C++ 中的数组前添加 '++' 会发生什么?

c++ - 整数分区 + 分区数

c++ - 如何读取 <string,vector<pair<int, string>>> 的映射