我对 C++ 中的向量 [] 运算符有疑问。
vector<stack<T>> myStackVec;
ops...
...
...
此代码不修改myStackVec
:
stack<T> temp = myStackVec.at(stackPos);
cout << "removing " << temp.top() << endl;
此代码确实通过修改myStackVec
进行修改temp
:
stack<T> *temp = &myStackVec[stackPos];
temp->push(item);
[] 运算符返回一个引用,为什么代码片段 1 不起作用?temp
代码1中有副本吗?