gpt4 book ai didi

C++ unordered_map 与 uint8_t

转载 作者:行者123 更新时间:2023-11-30 04:06:00 25 4
gpt4 key购买 nike

<分区>

我在使用键类型为 uint64_t 的 unordered_map 时遇到了一个奇怪的问题和值类型 uint8_t . (我有一些可能很大的整数,我想用 uint8_t 值来计算。)下面是一些代码:

std::unordered_map<uint64_t,uint8_t> mymap;
mymap.emplace(2,1);
mymap.emplace(20,3);
mymap.emplace(200,34);

for (auto it = mymap.begin(); it != mymap.end(); ++it) {
std::cout << it->first << ":" << it->second << std::endl;
printf("%lld : %d\n", it->first, it->second);
}

看来键和值在 unordered_map 中保存得很好.但是,std::cout << it->second << std::endl;代码混淆了 uint8_t 的输出值。即 cout (for 循环中的第一行)使输出出现乱码,而老派的 cstdio printf (for 循环中的第二行)打印出值就好了。诡异的。知道这里发生了什么吗?

如果我更改 unordered_map<uint64_t,uint16_t><uint64_t,int> ,它工作得很好。我已经尝试了各种终端和伪终端环境以及文本文件,所有这些都带有乱码或缺少 uint8_t 的输出。秒。我很难过。

这是输出:

20:
20 : 3
200:"
200 : 34
2:
2 : 1

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