我寫一個相當複雜的應用程序,使大量使用STL容器。該應用程序具有一個相對簡單的性能敏感部分,該部分遍歷多個std::map
並執行數千次。測試顯示,與禁用檢查迭代器(_SECURE_SCL
設置爲0)編譯相比,結果幾乎將程序整體提升了2倍,完全集中在本節中。選擇性地禁止檢查的迭代
但是,我無法編譯_SECURE_SCL
設置爲0的應用程序,因爲需要鏈接到已啓用_SECURE_SCL
編譯的庫並混合_SECURE_SCL
設置導致問題。另外,我發現在整個應用程序中使用未經檢查的迭代器時非常愚蠢,因爲所有性能敏感的位都發生在單個屏幕代碼中。這就等於用洗澡水把嬰兒扔掉了。
哪些選項我有選擇性地使用未經檢查的迭代器性能敏感的代碼/容器,同時保持與檢查的迭代器編譯庫的兼容性?
感謝您的格式幫助! – drxzcl
很高興提供幫助。一個好問題應該看起來不錯! –