lez*_*lon 1 c++ reference temporary
我有以下代码:
std::vector<A>& Get() { return some_object; };
for(int i=0; i<Get().size(); ++i) {
x->push_back(Get()[i]);
}
Run Code Online (Sandbox Code Playgroud)
但是当我第一次调用size()时,我得到了垃圾值.我想某些临时的东西会被删除,但我不确定...有人能告诉我发生了什么吗?
编辑:我some_object是一个静态向量,所以在这个例子中它永远不会被删除
我建议更换for循环.我不相信循环.太多的地方容易爬虫.
std::vector<A>& v = Get();
x.insert(x.end(), v.begin(), v.end());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |