如何解决将python字典翻译成C ++
字典将是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';
}
}
解决方法
我有包含以下代码的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库中查看了稀疏矩阵,但是找不到简单的方法来仅在非零元素上循环。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。