创建一个可以接收 board1[{1,1}]='X' 的 class; ? (方括号内的大括号)
creating a class that can receive board1[{1,1}]='X'; ? (curly brackets inside square brackets)
我得到了H.W。在 main.cpp 的其中一行中,我想支持:
board1[{1,1}]='X';
这背后的逻辑意义是将(1,1)位置的字符'X'赋值给一个"game board"。我不知道如何创建一个接收大括号的数组,例如 [{int,int}].
我该怎么做?
P.S。
因为这些是符号而不是字符(并且因为我不认识属于这个问题的任何术语)所以很难在 google 中搜索此类问题,所以这可能是重复的 :-( ,希望不会。
我试过:
第一次尝试:
vector<vector<int> > matrix(50);
for ( int i = 0 ; i < matrix.size() ; i++ )
matrix[i].resize(50);
matrix[{1,1}]=1;
第二次尝试:
int mat[3][3];
//maybe map
mat[{1,1}]=1;
第三次尝试:
class _mat { // singleton
protected:
int i ,j;
public:
void operator [](string s)
{
cout << s;
}
};
_mat mat;
string s = "[{}]";
mat[s]; //this does allow me to do assignment also the parsing of the string is a hustle
您需要执行以下操作:
struct coord {
int x;
int y;
};
class whatever
{
public:
//data being what you have in your board
data& operator[] (struct coord) {
//some code
}
};
您的第一次尝试非常接近实际工作。问题是向量的 [] 运算符将整数索引放入向量中要更改的位置(并且向量必须足够大才能存在)。但是,您想要的是一张地图;这将创建项目并为您分配它。因此 std::map<std::vector<int>, char>
会得到你想要的。 (虽然它可能没有最好的性能)。
您第二次尝试失败的原因与第一次相同(索引需要是整数),第三次已通过 Tyker 的答案更正。
我得到了H.W。在 main.cpp 的其中一行中,我想支持:
board1[{1,1}]='X';
这背后的逻辑意义是将(1,1)位置的字符'X'赋值给一个"game board"。我不知道如何创建一个接收大括号的数组,例如 [{int,int}].
我该怎么做?
P.S。 因为这些是符号而不是字符(并且因为我不认识属于这个问题的任何术语)所以很难在 google 中搜索此类问题,所以这可能是重复的 :-( ,希望不会。
我试过:
第一次尝试:
vector<vector<int> > matrix(50);
for ( int i = 0 ; i < matrix.size() ; i++ )
matrix[i].resize(50);
matrix[{1,1}]=1;
第二次尝试:
int mat[3][3];
//maybe map
mat[{1,1}]=1;
第三次尝试:
class _mat { // singleton
protected:
int i ,j;
public:
void operator [](string s)
{
cout << s;
}
};
_mat mat;
string s = "[{}]";
mat[s]; //this does allow me to do assignment also the parsing of the string is a hustle
您需要执行以下操作:
struct coord {
int x;
int y;
};
class whatever
{
public:
//data being what you have in your board
data& operator[] (struct coord) {
//some code
}
};
您的第一次尝试非常接近实际工作。问题是向量的 [] 运算符将整数索引放入向量中要更改的位置(并且向量必须足够大才能存在)。但是,您想要的是一张地图;这将创建项目并为您分配它。因此 std::map<std::vector<int>, char>
会得到你想要的。 (虽然它可能没有最好的性能)。
您第二次尝试失败的原因与第一次相同(索引需要是整数),第三次已通过 Tyker 的答案更正。