2017-10-10 115 views
3

调试我的代码在VS 2017年,并得到消息:没有发现qsort.cpp没有发现(在Visual Studio调试)

You need to find qsort.cpp to view the source for the current call stack frame 
Original location: minkernel\crts\ucrt\src\appcrt\stdlib\qsort.cpp 
Locating source for 'minkernel\crts\ucrt\src\appcrt\stdlib\qsort.cpp'. Checksum: SHA256 {a4 7d 36 67 4b 4a f4 5c 68 59 42 17 a7 26 df b7 93 50 a6 d2 f5 76 aa ca cc d1 7 23 22 90 ee 76} 

我该怎么办 qsort.cpp?

+0

如果这个文件存在,那么尝试解决方法:关闭选项“选项 - >调试 - >常规 - >要求源文件与原始版本完全匹配”。 – KonstantinL

+3

注意:您可能没有每个C库函数的源代码(因此无法将*调入*)。 – crashmstr

+0

我不知道,这个文件应该在哪里。 – Dmitry

回答

1

我遇到同样的问题,像你在我身边一样跟随屏幕截图,然后点击浏览并找到qsort.cpp,在C:\ Program Files(x86)\ Windows Kits \ 10 \ Source中浏览此文件\ 10.0.15063.0 \ ucrt \ stdlib,我可以正常进入这个cpp文件。

enter image description here

0

为什么要使用的std::sort代替qsort

std::sort是C++ 11的O(NlgN),其中快速排序是不确定的。

std :: sort可能会产生最优化的代码,因为它的排序类型因为内联,qsort只能使用您在void *上的比较。

std::sort是类型安全的。

测试表明std::sortqsort快250%至1000%。

当然,在特殊情况下,排序算法甚至更快,例如,您知道值的范围很小,您可以获得O(N)的谨慎值。