RT,写数据结构题时,写了下面的结构体和函数:
struct node
{
int ch[2];
int lst;
};
vector<node> t;
inline
int newnode(int lst)
{
t.push_back((node){{0,0},lst});
return t.size()-1;
}
如果这么调用:
int p=newnode(pos);
t[u].ch[k]=p;
就是对的。
如果这么调用:
t[u].ch[k]=newnode(pos);
就会出现问题:某些情况下,在 newnode 中 t.size()-1 的值正确,但赋值后 t[u].ch[k] 却是 0。
已经遇到过很多次这样的问题了,求解释这个问题发生的原因或解决方法