Pustaka Templat Standard (STL) adalah sekumpulan kelas templat C ++ untuk menyediakan struktur dan fungsi data pengaturcaraan biasa seperti senarai, tumpukan, tatasusunan, dan lain-lain. Dalam artikel STL dalam C ++ ini kita akan membincangkan petunjuk berikut:
Teruskan dengan artikel ini mengenai STL di C ++
Templat C ++
C ++ memberi kami ciri templat yang membolehkan fungsi dan kelas beroperasi dengan jenis generik. Ini membolehkan penggunaan semula fungsi atau kelas dan membolehkannya berfungsi pada pelbagai jenis data tanpa ditulis semula untuk setiap satu.
Teruskan dengan artikel ini mengenai STL di C ++
Fungsi generik dan STL
Walaupun pengaturcaraan berkali-kali ada keperluan untuk membuat fungsi yang melakukan operasi yang sama tetapi berfungsi dengan berbagai jenis data. Oleh itu, untuk mengatasi masalah ini C ++ menyediakan ciri untuk membuat satu fungsi generik dan bukannya banyak fungsi yang dapat berfungsi dengan jenis data yang berbeza dengan menggunakan parameter templat. Koleksi kelas dan fungsi genrik ini disebut Standard Template Library (STL)
Komponen STL yang kini menjadi sebahagian daripada pustaka C ++ standard didefinisikan dalam ruang nama std. Oleh itu, kita mesti menggunakan arahan menggunakan namespace untuk mengimportnya ke dalam program kita.
Sintaks:
Menggunakan ruang nama std
STL mempunyai tiga komponen
Bekas
Algoritma
Pengulangan
Ketiga-tiga komponen ini bekerjasama antara satu sama lain untuk memberi sokongan kepada pelbagai penyelesaian pengaturcaraan. Algoritma menggunakan aterator untuk menjalankan operasi yang disimpan di dalam bekas.
Bekas adalah objek yang menyimpan data dalam memori dengan cara yang teratur. Bekas dalam STL dilaksanakan oleh kelas templat dan oleh itu dapat diubahsuai dan disesuaikan dengan mudah untuk menyimpan pelbagai jenis data.
Prosedur yang digunakan untuk memproses data yang terdapat di dalam wadah didefinisikan sebagai algoritma. STL merangkumi pelbagai jenis algoritma untuk memberi sokongan kepada tugas-tugas seperti menginisialisasi, mencari, menyalin, menyusun, dan menggabungkan, menyalin, menyusun, dan menggabungkan. Algoritma dilaksanakan oleh fungsi templat.
Iterator dapat didefinisikan sebagai objek yang menunjuk ke elemen dalam wadah. Iterator boleh digunakan untuk menelusuri isi bekas. Pengulangan dikendalikan seperti penunjuk. Kita boleh menambah atau mengurangkannya. Iterator menghubungkan algoritma dengan bekas dan memainkan peranan penting dalam manipulasi data yang disimpan di dalam bekas.
adalah dan mempunyai hubungan di java
Teruskan dengan artikel ini mengenai STL di C ++
Bekas
STL mentakrifkan sepuluh kontena yang dikelompokkan menjadi tiga kategori.
Bekas | Penerangan | Fail tajuk | Pengulangan |
Vektor | Ia boleh didefinisikan sebagai larik dinamik. Ia membenarkan akses terus ke elemen apa pun. | Akses secara rawak | |
Senaraikan | Ini adalah senarai linear dua arah. Ia membenarkan penyisipan dan penghapusan di mana sahaja | Dua hala | |
dan | Ini adalah barisan dua hujung. Membolehkan penyisipan dan penghapusan di kedua hujungnya. Mengizinkan akses terus ke elemen apa pun. | Akses secara rawak | |
set | Ia adalah bekas bersekutu untuk menyimpan set unik. Membolehkan carian pantas. | Dua hala | |
pelbagai tetapan | Ia adalah bekas bersekutu untuk menyimpan set yang tidak unik. | Dua hala | |
peta | Ini adalah wadah bersekutu untuk menyimpan pasangan kunci / nilai yang unik. Setiap kunci dikaitkan dengan satu nilai sahaja. | Dua hala | |
pelbagai peta | Ini adalah wadah bersekutu untuk menyimpan kunci / nilai di mana satu kunci boleh dikaitkan dengan lebih dari satu nilai (pemetaan satu ke banyak). Ia membolehkan pencarian berdasarkan kunci. | Dua hala | |
timbunan | Tumpukan standard mengikuti last-in-first-out (LIFO) | Tiada iterator | |
beratur | Antrean standard mengikuti first-in-first-out (FIFO) | Tiada iterator | |
keutamaan-beratur | Elemen pertama keluar selalu menjadi elemen keutamaan tertinggi | Tiada iterator |
Bekas Urutan
Bekas urutan menyimpan elemen dalam urutan linear. Semua elemen saling berkaitan antara satu sama lain dengan kedudukannya di sepanjang garis. Mereka membenarkan memasukkan elemen dan semuanya menyokong beberapa operasi pada mereka.
STL menyediakan tiga jenis elemen urutan:
- Vektor
- Senaraikan
- dan
Bekas bersekutu:
Mereka direka sedemikian rupa sehingga mereka dapat menyokong akses langsung ke elemen menggunakan kunci. Mereka tidak berurutan. Terdapat empat jenis
bekas bersekutu:
- Tetapkan
- Multiset
- Peta
- Pelbagai peta
Semua bekas di atas menyimpan data dalam struktur yang disebut pokok yang memudahkannya
carian, penghapusan, dan penyisipan tidak seperti urutan. Set kontainer atau multiset dapat menyimpan pelbagai item dan menyediakan operasi untuk memanipulasinya menggunakan nilai sebagai kunci.
Dan peta atau Multimap digunakan untuk menyimpan item secara berpasangan, yang disebut kunci dan yang lain
disebut nilai.
Bekas terbitan:
STL menyediakan tiga bekas terbitan iaitu, stack, queue, dan priority_queue. Ini juga dikenali sebagai penyesuai kontena.
Terdapat tiga jenis bekas yang berasal:
1. Tumpukan
2. Beratur
3. Keutamaan_quue
Stack, queue dan queue priority dapat dibuat dengan mudah dari bekas urutan yang berbeza. Bekas yang dihasilkan tidak menyokong iterator dan oleh itu kami tidak dapat menggunakannya untuk manipulasi data. Namun, mereka menyokong fungsi dua anggota pop () dan push () untuk melaksanakan operasi menghapus dan memasukkan.
Teruskan dengan artikel ini mengenai STL di C ++
Algoritma
Algoritma adalah fungsi yang dapat digunakan secara umum di berbagai wadah untuk memproses kandungannya. Walaupun setiap kontena menyediakan fungsi untuk operasi asasnya, STL menyediakan lebih daripada enam puluh algoritma standard untuk menyokong operasi yang lebih luas atau kompleks. Algoritma standard juga membolehkan kita bekerja dengan dua jenis kontena pada masa yang sama.
Algoritma STL memperkuat falsafah penggunaan semula. Dengan menggunakan algoritma ini, pengaturcara dapat menjimatkan banyak masa dan usaha. Untuk mempunyai akses ke algoritma STL, kita mesti memasukkan dalam program kita.
Algoritma STL, berdasarkan sifat operasi yang mereka lakukan, boleh dikategorikan sebagai di bawah:
Algoritma tidak berpindah
Algoritma mutasi
Menyusun algoritma
Tetapkan algoritma
Algoritma hubungan
Teruskan dengan artikel ini mengenai STL di C ++
Pengulang:
Iterator bertindak seperti penunjuk dan digunakan untuk mengakses elemen bekas. Kami menggunakan iterator untuk mengalihkan isi kandungan. Pengulangan dikendalikan seperti penunjuk. Kita boleh menambah atau mengurangkannya mengikut kehendak kita. Iterator menghubungkan bekas dengan algoritma dan memainkan peranan penting dalam manipulasi data yang disimpan di dalam bekas. Mereka sering digunakan untuk melewati dari satu elemen ke elemen lain, proses ini disebut berulang melalui wadah.
Terdapat lima jenis iterator:
1. Masukan
2. Keluaran
3. Maju
4. Dua arah
5. Rawak
Pengulangan | Kaedah akses | Arah pergerakan | Keupayaan I / O | Catatan |
Masukan | Linier | Teruskan sahaja | Baca sahaja | Tidak dapat disimpan |
Pengeluaran | Linier ng-change vs onchange | Teruskan sahaja | Tulis sahaja | Tidak dapat disimpan |
Ke hadapan | Linier | Teruskan sahaja | Baca tulis | Boleh diselamatkan |
Dua hala | Linier | Ke hadapan dan ke belakang | Baca tulis | Boleh diselamatkan |
Secara rawak | Secara rawak | Ke hadapan dan ke belakang | Baca tulis | Boleh diselamatkan |
Jenis iterator yang berbeza mesti digunakan dengan pelbagai jenis kontena yang hanya ada
jujukan dan bekas bersekutu dibenarkan bergerak melalui iterator. Setiap jenis iterator digunakan untuk melakukan fungsi tertentu. Iterator input dan output menyokong fungsi paling sedikit. Mereka boleh digunakan hanya untuk melewati dalam bekas. Iterator maju menyokong semua operasi iterator input dan output dan juga mengekalkan kedudukannya di dalam container. Iterator Bidirectional, sambil menyokong semua operasi iterator maju, memberikan kemampuan untuk bergerak ke arah belakang ke dalam bekas.
Oleh itu, kita telah mengakhiri artikel ini mengenai 'STL dalam C ++'. Sekiranya anda ingin mengetahui lebih lanjut, lihat di oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai. Kursus latihan dan pensijilan Java J2EE dan SOA Edureka dirancang untuk melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.
Ada soalan untuk kami? Sila sebutkan di bahagian komen blog ini dan kami akan menghubungi anda secepat mungkin.