基本上我想要的是认为,字段名(字符串)映射到任何类型值的一个HashMap为此我写了持有型和价值信息的单独MyField的MyClass类..
这是我到目前为止:
template <typename T>
class MyField {
T m_Value;
int m_Size;
}
struct MyClass {
std::map<string, MyField> fields; //ERROR!!!
}
Run Code Online (Sandbox Code Playgroud)
但正如您所看到的,地图声明失败,因为我没有为MyField提供类型参数...
所以我想它必须是这样的
std::map< string, MyField<int> > fields;
Run Code Online (Sandbox Code Playgroud)
要么
std::map< string, MyField<double> > fields;
Run Code Online (Sandbox Code Playgroud)
但显然这会破坏我的整个目的,因为声明的地图只能保存特定类型的MyField.我想要一个可以容纳任何类型的MyField clas的地图.
有什么办法可以实现这个目的吗?
我有python代码,包含以下代码.
d = {}
d[(0,0)] = 0
d[(1,2)] = 1
d[(2,1)] = 2
d[(2,3)] = 3
d[(3,2)] = 4
for (i,j) in d:
print d[(i,j)], d[(j,i)]
Run Code Online (Sandbox Code Playgroud)
不幸的是,循环遍历python中的所有键并不足以达到我的目的,我想将此代码转换为C++.什么是用于python字典的最佳C++数据结构,它以元组为键?上述代码的C++等价物是什么?
我查看了boost库中的稀疏矩阵,但是找不到一种只在非零元素上循环的简单方法.
我目前正在用AI制作一个井字游戏程序,我在翻译这行代码(python)时遇到了一些麻烦:
RANKS = dict([(4,3), # center = 3
(0,2),(2,2),(6,2),(8,2), # corners = 2
(1,1),(3,1),(5,1),(7,1)]) # sides = 1
Run Code Online (Sandbox Code Playgroud)
进入C++
有什么建议?