情况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 语句为真。在第二种情况下,if 为假。在这两种情况下,起初 y[x] 的大小都是零。但是在将 y[x] 分配给 v 之后的第一种情况下,y[x] 的大小变为 1。
这是怎么发生的?还有我们如何在不影响 y[x] 的情况下将 y[x] 分配给 v?