C++ Map容器初始化遇到的问题

例如:创建一个map容器:

map<int,int>mp;
//初始化
mp[1]=3;
mp[2]=5;
//此时mp容器的长度为2
mp[3]; //执行此语句也会给mp容器分配一个值为3的键,此时mp长度为3
//所以如果不确定mp中是否有该键值对而直接使用,会造成此键值对被初始化到mp中
例子二:
    map<string,vector<int> >p;
    string s="123";
    p[s].push_back(3);
    ///这样会相当于给map一个键,p["33"],即使没有初始化!!!
    int len=p["99"].size(); cout<<len<<endl;
    cout<<p.size()<<" "<<endl;

你可能感兴趣的:(C++)