【发布时间】:2018-10-12 08:03:57
【问题描述】:
我得到了 H.W.我想在 main.cpp 的其中一行中支持:
board1[{1,1}]='X';
这背后的逻辑含义是将字符'X'分配给“游戏板”在(1,1)的位置。我不知道如何创建一个接收大括号的数组,例如 [{int,int}]。
我该怎么做?
附: 因为这些是符号而不是字符(并且因为我不认识属于这个问题的任何术语)所以在谷歌中搜索这种类型的问题非常困难,所以这可能是重复的 :-( ,希望不是。
我尝试过:
第一次尝试:
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
【问题讨论】:
-
你熟悉运算符重载吗?
-
不要只要求我们做你的功课而不发布你尝试过的东西。它会比朝鲜的核计划更快地被否决。
-
@UKMonkey 嘿,我不是要求做我的硬件。这只是硬件的一小部分,我也没有要求解决它只是为了知道我应该如何处理它......我将添加我试图做的那部分。顺便说一句,我同意你的观点,人们不应该只要求别人做他们的硬件,我只是想解释为什么我的情况不同。
-
@StoryTeller 是的,但假设这也会重载括号和赋值运算符......(我也不确定我是否应该进行重载)但现在我将检查如何重载两个运算符一起
-
{}是此类 en.cppreference.com/w/cpp/utility/initializer_list 的快捷方式,如果您打算专门重载运算符;但它也可以传递给其他类的构造函数(见下面的答案)
标签: c++ brackets curly-braces square-bracket