Rumah >pembangunan bahagian belakang >C++ >Adakah std::vector\'s operator[] dalam Visual Studio Melakukan Semakan Had dalam Pembinaan Keluaran?
Kelakuan Semakan Had std::vector's Operator[] dalam Visual Studio
Dalam Visual Studio 2008, std::vector's operator[] mempamerkan tingkah laku menyemak sempadan secara lalai. Ini bermakna bahawa mengakses elemen di luar julat yang ditentukan vektor menggunakan operator[] akan menghasilkan pengecualian std::out_of_range. Walau bagaimanapun, tingkah laku ini didayakan dalam kedua-dua binaan nyahpepijat dan keluaran secara lalai.
Poster menyatakan minat untuk melumpuhkan binaan keluaran semakan sempadan masuk untuk mengoptimumkan prestasi. Nasib baik, Visual Studio 2010 merancang untuk menangani isu ini dengan melumpuhkan semakan sempadan binaan keluaran sambil mengekalkannya dalam binaan nyahpepijat secara lalai.
Perubahan ini akan dikawal oleh makro _ITERATOR_DEBUG_LEVEL (sebelum ini _SECURE_SCL), yang boleh ditetapkan kepada 0 untuk melumpuhkan semakan sempadan. Ini membenarkan pembangun untuk secara selektif mendayakan semakan sempadan untuk operator[] dalam binaan nyahpepijat sambil menyekatnya dalam binaan keluaran untuk meningkatkan prestasi.
Dengan melaksanakan perubahan ini, Visual Studio 2010 akan memberikan kefleksibelan yang lebih besar dalam mengurus gelagat semakan had untuk std :: pengendali vektor[]. Pembangun kini boleh memilih untuk mengutamakan ketepatan (dengan semakan had dalam semua binaan) atau prestasi (dengan semakan sempadan yang dilumpuhkan dalam binaan keluaran) berdasarkan keperluan aplikasi khusus mereka.
Atas ialah kandungan terperinci Adakah std::vector\'s operator[] dalam Visual Studio Melakukan Semakan Had dalam Pembinaan Keluaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!