C++ 我在映射C+;中得到count()的意外行为+;
正在将count的值增加1,同时C++ 我在映射C+;中得到count()的意外行为+;,c++,c++11,c++17,C++,C++11,C++17,正在将count的值增加1,同时nums\u map.empty()=0。因为std::map::operator[]的工作方式有点奇怪。发件人: 返回对映射到与键等效的键的值的引用,如果该键不存在,则执行插入 因此,如果密钥不存在,它将创建一个新的密钥对。这正是这里发生的事情 int a = nums_map[0]; #包括 #包括 int main(){ 使用名称空间std; map nums\u map;//nums\u map=={} cout value在该键处初始化一个不存在的元素
nums\u map.empty()
=0。因为std::map::operator[]
的工作方式有点奇怪。发件人:
返回对映射到与键等效的键的值的引用,如果该键不存在,则执行插入
因此,如果密钥不存在,它将创建一个新的密钥对。这正是这里发生的事情
int a = nums_map[0];
#包括
#包括
int main(){
使用名称空间std;
map nums\u map;//nums\u map=={}
cout value在该键处初始化一个不存在的元素。这就是允许您初始化a
的原因。
int a = nums_map[0];
#include <iostream>
#include <map>
int main() {
using namespace std;
map<int, int> nums_map; // nums_map == {}
cout << nums_map.count(0) << endl; // 0, because the map is empty
int a = nums_map[0]; /* a new key/value pair of {0, 0} is
created and a is set to nums_map[0],
which is 0 */
cout << nums_map.count(0) << endl; // Since there is one key 0 now, this shows 1
cout << nums_map[0]; // As shown previously, nums_map[0] is 0
return 0;
}