gpt4 book ai didi

c++ - 我们可以将数组映射到整数吗?

转载 作者:行者123 更新时间:2023-11-30 01:33:56 24 4
gpt4 key购买 nike

我开始知道我们可以映射一个 vector 和一个整数。我的意思是假设我们制作map<vector<int>,int>国 session 员现在假设我做了一个 vector , vector<int> vec .假设我推 2,3,4,5vec .然后通过做 ++mp[vec] ,我将在 vector {2,3,4,5} 之间创建一个映射和 1 .现在假设在同一个vec ,我删除所有数据然后我推 11,12,13,14 .现在如果我做++mp[vec]然后是 vector {11,12,13,14} 之间的 map 和 1将被创建。现在终于假设我再次删除 vec 中的所有数据并制作vector {2,3,4,5}我做++mp[vec] . {2,3,4,5}之间的 map 和 1更改为 {2,3,4,5}2 .因此我们在 mp 中有两张 map .第一({2,3,4,5},2)第二个({11,12,13,14},1) .

我们也可以对数组做类似的事情吗?我的意思是我在数组和整数之间创建一个映射,对于不同的数组我得到不同的映射?

我试图通过 map<int[],int> mp 在整数数组和整数之间进行转换.然后我做了一个变量 int v[10] .当我做 ++mp[v] , 它给出了一个错误。

然后我尝试了另一种方法。我创建了 map ,map<int * , int > mp , 但它给出了错误的结果。我的意思是它并没有真正存储数组和整数之间的映射。我认为它存储的是指针和整数之间的映射。

是否可以在整数数组之间创建映射,我的意思是假设我有一个大小为 10 的数组,令 int v[10]我填写1,2,3,4,5,6,7,8,9,10在里面。当我做 ++mp[v] , array {1,2,3,4,5,6,7,8,9,10} 之间的映射和 1被创建。 现在如果在同一个 array v ,我将值更改为 {11,12,13,14,5,6,7,8,9,10}我做++mp[v] ,然后是 {11,12,13,14,5,6,7,8,9,10} 之间的映射和 1被创建。现在如果最终在同一个变量中 v我店{1,2,3,4,5,6,7,8,9,10}然后做 ++mp[v] , {1,2,3,4,5,6,7,8,9,10} 之间的映射和 1更改为 {1,2,3,4,5,6,7,8,9,10}2 .

这是我的第一个问题。我可能问得不够完美。我欢迎任何意见或建议。

最佳答案

使用 std::array而不是 raw array .你可以使用

int main()
{
std::map<std::array<int, 10>, int> mp;
std::array v = {1,2,3,4,5,6,7,8,9,10}; // this line requires C++17.
// If you don't have that use std::array<int, 10> v instead
++mp[v];
v = {11,12,13,14,5,6,7,8,9,10};
++mp[v];
v = {1,2,3,4,5,6,7,8,9,10};
++mp[v];
// now mp has ({1,2,3,4,5,6,7,8,9,10}, 2) and ({11,12,13,14,5,6,7,8,9,10}, 1) in it
}

关于c++ - 我们可以将数组映射到整数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57273516/

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