0

ケース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 に割り当てるにはどうすればよいでしょうか?

4

1 に答える 1