2024-03-29 00:12:39 发布
网友
我目前正在用人工智能制作一个tic-tac-toe程序,我在翻译这行代码(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
进入C++ +/P>
有什么建议吗?
C++中最匹配的是^{}。这是一个哈希表,将int键映射到int值。
int
#include <unordered_map> std::unordered_map<int, int> RANKS = { { 4, 3 }, { 0, 2 }, { 2, 2 }, { 6, 2 }, { 8, 2 }, { 1, 1 }, { 3, 1 }, { 5, 1 }, { 7, 1 } };
例如,可以使用operator[]访问元素
operator[]
std::cout << RANKS[0] << std::endl; // prints "2"
注意,C++标准库也有^{}类模板,它允许您创建类似但有序的EEM>查找表{< CD6>},具有对数查找和插入复杂性。但是pythondict是散列表,因此unordered_map在行为上更接近匹配。
dict
unordered_map
#include <unordered_map> std::map<int, int> dict { { { 4, 3 }, { 0, 2 }, { 2, 2 }, { 6, 2 }, { 8, 2 }, { 1, 1 }, { 3, 1 }, { 5, 1 }, { 7, 1 } } };
你可以使用一个映射或无序映射(它们可以很好地工作),但是考虑到你的键是一个密集的整数集(即从0到N的所有整数),有更好的选择。
我可能会用std::array代替。它看起来像这样:
std::array
std::array <char, 9> vals = { 2, 1, 2, 1, 3, 1, 2, 1, 2 };
这提供了几乎相同的语法和可观察的行为,但通常会节省相当多的内存,可能还会节省CPU时间。
C++中最匹配的是^{} 。这是一个哈希表,将
int
键映射到int
值。例如,可以使用
operator[]
访问元素注意,C++标准库也有^{} 类模板,它允许您创建类似但有序的EEM>查找表{< CD6>},具有对数查找和插入复杂性。但是python
dict
是散列表,因此unordered_map
在行为上更接近匹配。你可以使用一个映射或无序映射(它们可以很好地工作),但是考虑到你的键是一个密集的整数集(即从0到N的所有整数),有更好的选择。
我可能会用
std::array
代替。它看起来像这样:这提供了几乎相同的语法和可观察的行为,但通常会节省相当多的内存,可能还会节省CPU时间。
相关问题 更多 >
编程相关推荐