下面的代码无法编译并出现错误:“数组下标 16 超出 \xe2\x80\xa6 的数组范围”。\n我不明白为什么,w保证是 <= arr1.size()。
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}\nRun Code Online (Sandbox Code Playgroud)\n