ケース1
void insert(map<string, vector<int>> &y,const string &x)
{
vector<int> v=y[x];
if(!y.count(x)>0)
{
...
}
}
ケース 2
void insert(map<string, vector<int>> &y,const string &x)
{
//vector<int> v=y[x];
if(!y.count(x)>0)
{
...
}
}
最初のケースでは、if ステートメントは true です。2 番目のケースでは、if は false です。どちらの場合も、最初は y[x] のサイズはゼロでした。しかし、y[x] を v に割り当てた後の最初のケースでは、y[x] のサイズは 1 に変わります。
これはどのように起こりますか?また、y[x] に影響を与えずに y[x] を v に割り当てるにはどうすればよいでしょうか?