STL dalam c ++: Semua yang Perlu Anda Ketahui



Artikel ini akan memberi anda pengetahuan terperinci dan komprehensif mengenai STL dalam C ++ dan akan memberi anda idea tentang pelbagai kontena juga.

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.

Container-STL-in-C++

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:

  1. Tetapkan
  2. Multiset
  3. Peta
  4. 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.