C++中v1.back().v2.push_back(x)代码行的含义是什么?
代码行
v1.back().v2.push_back(x);含义解释 先看完整的代码上下文:
struct Thing { int id; std::vector<int> v2; }; std::vector<Thing> v1; int main() { int n; cin>>n; for(int i=0;i<n;i++) { Thing pic; cin>>pic.id; v1.push_back(pic); int x; cin>>x; v1.back().v2.push_back(x); } }
这行代码可以拆成三个部分逐个理解:
v1.back():调用vector的back()方法,直接获取v1容器里最后一个元素的引用。因为上一行刚执行了v1.push_back(pic);,所以这里拿到的就是刚刚被添加到v1里的那个Thing对象,而且是直接操作原对象,不是拷贝。.v2:通过成员访问符,访问这个Thing对象里的成员变量v2——也就是定义在struct Thing里的那个std::vector<int>类型的容器。.push_back(x):调用v2这个vector的push_back()方法,把刚输入的整数x添加到v2的末尾。
简单说,这行代码的作用就是:把刚读入的整数x,追加到刚刚被添加到v1的那个Thing对象的v2容器里。
内容的提问来源于stack exchange,提问作者Ish Rak
相关产品推荐
相关产品推荐

