zero Asked:2024-09-08 14:11:38 +0000 UTC2024-09-08 14:11:38 +0000 UTC 2024-09-08 14:11:38 +0000 UTC 映射 <int, int> c++; int中的map值的初始含义是什么 772 我知道默认情况下,map <int, int> 中的值将为 0,因此 map[1]++ 的值将为 1。是否可以更改此设置并将初始值设置为 -1,而不是 0? c++ 1 个回答 Voted Best Answer Stanislav Volodarskiy 2024-09-08T16:20:01Z2024-09-08T16:20:01Z 为值创建新的变体map或新的类型太多了。 在 C++17 中的map::try_emplace和 C++11 中的map ::emplace 中,仅当映射中没有此类键时才插入新元素。否则,将返回旧密钥。代码不是最漂亮的,但它很有效并且不是很长: // i - ключ, который обновляется map.try_emplace(i, -1).first->second++; // map.emplace(i, -1).first->second++;
为值创建新的变体
map或新的类型太多了。在 C++17 中的map::try_emplace和 C++11 中的map ::emplace 中,仅当映射中没有此类键时才插入新元素。否则,将返回旧密钥。代码不是最漂亮的,但它很有效并且不是很长: