gpt4 book ai didi

c++ - 将python字典翻译成C++

转载 作者:IT老高 更新时间:2023-10-28 20:30:18 25 4
gpt4 key购买 nike

我有包含以下代码的 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)]

不幸的是,循环遍历 python 中的所有键对于我的目的来说还不够快,我想将此代码转换为 C++。用于以元组为键的 python 字典的最佳 C++ 数据结构是什么?上述代码的 C++ 等价物是什么?

我查看了 boost 库中的稀疏矩阵,但找不到一种仅循环非零元素的简单方法。

最佳答案

字典是 c++ 中的 std::map,而包含两个元素的元组是 std::pair。

提供的 python 代码将转换为:

#include <iostream>
#include <map>

typedef std::map<std::pair<int, int>, int> Dict;
typedef Dict::const_iterator It;

int main()
{
Dict d;

d[std::make_pair(0, 0)] = 0;
d[std::make_pair(1, 2)] = 1;
d[std::make_pair(2, 1)] = 2;
d[std::make_pair(2, 3)] = 3;
d[std::make_pair(3, 2)] = 4;

for (It it(d.begin()); it != d.end(); ++it)
{
int i(it->first.first);
int j(it->first.second);
std::cout <<it->second <<' '
<<d[std::make_pair(j, i)] <<'\n';
}
}

关于c++ - 将python字典翻译成C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1842941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com