小编Ksh*_*kla的帖子

为什么不基于范围的循环修改容器元素?

我最近发现修改自动迭代向量中的数据不会为我带来正确的结果。例如,当我尝试对vector的vector元素进行排序时,某些元素未排序,但代码成功运行

vector<vector<int> > arr;
arr.push_back({38, 27});
for(auto v : arr)
{
    sort(v.begin(), v.end());
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在排序后的输出仍然是38、27。而当我以sort(arr [0] .begin(),arr [0] .end())进行排序时,结果是正确的。我用gcc编译。

c++ auto c++11

0
推荐指数
1
解决办法
102
查看次数

标签 统计

auto ×1

c++ ×1

c++11 ×1