Visual Studio 中std::vector 的Operator[] 的邊界檢查行為
在Visual Studio 2008 中,std::vector 的Operator[]預設表現出邊界檢查行為。這意味著使用operator[]存取向量定義範圍之外的元素將導致std::out_of_range異常。但是,預設情況下,在偵錯和發布版本中都會啟用此行為。
發布者表示有興趣在發布版本中停用邊界檢查以優化效能。幸運的是,Visual Studio 2010 計畫透過在發布版本中停用邊界檢查,同時預設在偵錯版本中保留邊界檢查來解決此問題。
此變更將由巨集 _ITERATOR_DEBUG_LEVEL(先前為 _SECURE_SCL)控制,該巨集可以設定為 0 以停用邊界檢查。這允許開發人員選擇性地在偵錯版本中啟用運算符 [] 的邊界檢查,同時在發布版本中抑制它以提高效能。
透過實作此更改,Visual Studio 2010 將在管理 std 的邊界檢查行為方面提供更大的靈活性::向量的運算子[]。開發人員現在可以根據其特定的應用程式需求選擇優先考慮準確性(在所有版本中進行邊界檢查)或效能(在發布版本中停用邊界檢查)。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3