相关疑难解决方法(0)

C++ std :: map持有任何类型的值

基本上我想要的是认为,字段名(字符串)映射到任何类型值的一个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的地图.

有什么办法可以实现这个目的吗?

c++ templates

25
推荐指数
5
解决办法
3万
查看次数

将python字典翻译成C++

我有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库中的稀疏矩阵,但是找不到一种只在非零元素上循环的简单方法.

c++ python dictionary tuples

22
推荐指数
3
解决办法
3万
查看次数

C++相当于Python词典

我目前正在用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++

有什么建议?

c++ python

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×3

python ×2

dictionary ×1

templates ×1

tuples ×1