gpt4 book ai didi

c++ - 从数组映射到整数在 C++ 中无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:02 24 4
gpt4 key购买 nike

我有一个代码使用从数组到整数的映射,但它不能正常工作。

#include <iostream>
#include <map>
using namespace std;
int main() {
map <int*, int> abcd;
int a[2], b[2];
a[0]= 2;
a[1]= 3;
abcd[a]=1;
b[0]= 2;
b[1]= 3;
cout<<abcd[b];
return 0;
}

注意这里的数组a和b是相等的,所以abcd[b]应该等于1,但是输出是0,为什么会这样呢?我该如何解决这个问题?

提前致谢,抱歉英语不好。

最佳答案

您的 map 正在存储 int*键,而不是数组。如果要存储数组,请尝试 std::array<int,2>如果总有 2 个元素,或者 std::vector<int>如果它不同....

因为你在存储指针,abcd[a]=1实际上是在说“如果我再次使用 a[] 的地址进行索引,找到值 1abcd[b] 寻找一个不同的键 &b,它永远不会等于 &a,因为它们是不同的变量不同的地址。指针键与数组内容无关;另一个结果是,如果您更改 a[] 中的值并查找 abcd[a],您仍然会找到 1 ....

关于c++ - 从数组映射到整数在 C++ 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26966894/

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