如何实现 mymap[key]++
可视化。我是在递增键还是在递增值? 在第1行 hash[numberToFind]
我在结果中插入的是键还是值?
unordered_map<int, int> hash;
vector<int> result;
for (int i = 0; i < arr.size(); i++) {
int numberToFind = target - arr[i];
if (hash.find(numberToFind) != hash.end()) {
result.push_back(hash[numberToFind]); //LINE 1
result.push_back(i);
return result;
}
在stackoverflow.com上问之前,可以考虑去找一个好的参考资料。cppreference.com是相当不错的。
https:/en.cppreference.comwcppcontainerunordered_map。
key
是键。
mymap[key]
中的元素的引用。mymap
在关键 key
.
如果 key
还没有 mymap
, mymap[key]
默认情况下,在 key
然后返回对它的引用。
mymap[key]++
中的元素递增。mymap
在关键 key
. 上面的规则仍然有效:如果 key
还没有 mymap
那么一个元素的默认构造是 mymap
在关键 key
的值,然后递增。
myvec.push_back(mymap[key])
创建一个在 key
,并将其添加到 myvec
. 复制的功能如何 push_back
工作。push_back
只在向量的末尾添加元素的副本。上面的规则仍然有效:如果 key
还没有 mymap
那么一个元素的默认构造是 mymap
在关键 key
,然后复制到 myvec
.
numbers[i]
是指 i
幺子 std::vector<int> numbers
. 如果一个索引中还没有元素,那么Vectors默认不会在该索引中创建元素。相反,访问一个越界索引是未定义的行为。
hash[x]
中的元素的引用。std::unordered_map<int, int> hash
在关键 x
. 默认情况下,如上所述,必要时创建。
hash[numbers[i]]
中的元素的引用。hash
在关键 numbers[i]
. 如有必要,默认创建同上。
hash[numbers[i]] = i;
设置元素在 hash
在关键 numbers[i]
的值,到 i
.