Video: Advanced C++: Mixing C and C++ 2024
Bentuk yang paling umum dari array C ++ ialah rentetan aksara yang ditamatkan null yang digunakan untuk memaparkan teks, yang jelas menunjukkan kedua-dua kelebihan dan kekurangan array. Pertimbangkan betapa mudahnya perkara berikut:
cout << "ini adalah rentetan";
Tetapi perkara menjadi masam dengan cepat apabila anda cuba melakukan operasi walaupun semudah menggabungkan dua daripada string null yang ditamatkan:
char * concatCharString (const char * s1, const char * s2) {int length = strlen (s1) + strlen (s2) + 1; char * s = new char [length]; strcpy (s, s1); strcat (s, s2); kembali s;}
STL menyediakan tali bekas untuk mengendalikan tali paparan. Kelas rentetan menyediakan beberapa operasi (termasuk pengendali yang terlalu banyak) untuk memudahkan manipulasi rentetan aksara. Operasi concat () yang sama boleh dilakukan seperti berikut menggunakan objek string :
string concat (const string & s1, const string & s2) {return s1 + s2;}
Pada intinya, string Operasi yang disediakan oleh STL memudahkan untuk memanipulasi objek string tetapi tidak lebih cepat. Memasukkan ke tengah-tengah tali masih melibatkan memindahkan kandungan susunan sekitar.
Kelas string sebenarnya merupakan instantiasi template class basic_class dengan T ditetapkan ke char . Kelas wstring adalah nama lain untuk basic_class . Kelas ini menyediakan manipulasi watak yang sama yang ditunjukkan di sini untuk rentetan yang luas.
Definisi C ++ '11 menambah u16string dan u32string , yang memanjangkan kaedah manipulasi rentetan kepada UTF-16 dan UTF-32 string karakter. Semua perbandingan antara dua objek rentetan dilakukan secara leksikografi - iaitu, yang mana dari kedua-dua rentetan akan muncul terlebih dahulu dalam kamus bahasa semasa.