2017-10-10 111 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)的謹慎值。