这是我使用的枚举类。
enum class PlayerColor {BLACK, BLUE, RED};
这就是我想要创建矢量的方式。基本上,存储一个顶点名称及其颜色。我收到很多错误。
typedef pair<int, PlayerColor> ip;
vector< vector< ip > > vertices;
这就是我想要初始化 2D 向量的方式(在构造函数中)
for(auto i=vertices.begin()+1;i<vertices.end();++i)
for(auto j=i->begin()+1;j<i->end();++j)
{
*(j.first)=c++; //error
*(j.second)=PlayerColor::BLACK; //error
}
此函数采用两个顶点的名称并在它们之间添加一条边。(否则常规工作正常)
addEdge(vertices[i][j+1].first,vertices[i][j].first); //error
编辑:
addEdge
函数定义为:
void HexBoard::addEdge(int u, int v)
{
edge[u].push_back(v);
edge[v].push_back(u);
}
edge
是 :
vector< vector<int> > edge;
它以 C++11 风格初始化为:
edge(vector< vector<int> > (size*size + 1 + 4)),EAST(size*size+1),WEST(size*size+2)
size
是一个整数。