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
837 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!

sumber:php.cn
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