Rumah > pembangunan bahagian belakang > C++ > Adakah `&s[0]` Sentiasa Menunjuk kepada Aksara Bersebelahan dalam C 11 `std::string`?

Adakah `&s[0]` Sentiasa Menunjuk kepada Aksara Bersebelahan dalam C 11 `std::string`?

Patricia Arquette
Lepaskan: 2024-12-05 05:44:15
asal
943 orang telah melayarinya

Does `&s[0]` Always Point to Contiguous Characters in a C  11 `std::string`?

Adakah "&s[0]" Sentiasa Menunjuk kepada Aksara Bersebelahan dalam std::string?

Dalam kod penyelenggaraan, beberapa bacaan tergesa-gesa boleh membawa kepada kebimbangan tentang menggunakan "&s[0]" untuk mengakses aksara dalam std::string. Ini berpunca daripada pengetahuan bahawa, di bawah C 98/03, peruntukan std::string tidak dijamin bersebelahan, tidak seperti dalam std::vector. Walau bagaimanapun, C 11 telah menangani ketidakpastian ini.

Bertentangan dengan standard, pengalaman praktikal menunjukkan bahawa kebanyakan pelaksanaan std::string memperuntukkan storan bersebelahan. Namun begitu, C 11 telah menyelesaikan perkara ini secara muktamad, mewajibkan peruntukan std::string adalah bersebelahan. Ini memastikan bahawa "&s[0]" sentiasa menunjuk kepada rujukan yang sah bagi aksara pertama rentetan, walaupun dalam situasi di mana rentetan itu kosong.

Sementara "&s[0]" kekal sebagai kaedah yang boleh dipercayai untuk mengakses rentetan aksara, kaedah lain seperti "str.begin()" dan "&*str.begin()" tidak dijamin berfungsi secara konsisten di bawah semua konfigurasi standard. Oleh itu, menggunakan "&s[0]" ialah pendekatan yang disyorkan untuk akses terus kepada aksara std::string.

Atas ialah kandungan terperinci Adakah `&s[0]` Sentiasa Menunjuk kepada Aksara Bersebelahan dalam C 11 `std::string`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan