小编mmo*_*el1的帖子

std::sort 调用导致下标超出范围编译时错误

下面的代码无法编译并出现错误:“数组下标 16 超出 \xe2\x80\xa6 的数组范围”。\n我不明白为什么,w保证是 <= arr1.size()。

\n

https://godbolt.org/z/5n5KohsnW

\n
#include <array>\n#include <algorithm>\n#include <tuple>\n\nextern bool test_func();\n\nint tempfunc() \n{\n    std::array<std::tuple<double,int>,5> arr1;\n    int w = 0;\n    for (int i = 0; i < 5; ++i ) {\n        if( test_func()) {\n            arr1[w] = {3.,4};\n            w++;\n        }\n    }\n    std::sort(arr1.begin(), arr1.begin() + w);\n\n    return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

c++ arrays sorting

10
推荐指数
1
解决办法
237
查看次数

标签 统计

arrays ×1

c++ ×1

sorting ×1