STL di c ++: Semua yang Perlu Anda Ketahui



Artikel ini akan memberi Anda pengetahuan Mendetail dan Komprehensif tentang STL di C ++ dan akan memberi Anda gambaran tentang berbagai wadah juga.

Standard Template Library (STL) adalah sekumpulan kelas template C ++ untuk menyediakan struktur dan fungsi data pemrograman umum seperti list, stack, array, dll. Dalam artikel STL dalam C ++ ini kita akan membahas petunjuk berikut:

Pindah dengan artikel ini tentang STL di C ++





Template C ++

C ++ memberi kita fitur template yang memungkinkan fungsi dan kelas beroperasi dengan tipe umum. Hal ini memungkinkan fungsi atau kelas dapat digunakan kembali dan memungkinkannya bekerja pada banyak tipe data yang berbeda tanpa harus ditulis ulang untuk masing-masing.

Pindah dengan artikel ini tentang STL di C ++



Fungsi generik dan STL

Sementara pemrograman banyak waktu, ada kebutuhan untuk membuat fungsi yang melakukan operasi yang sama tetapi bekerja dengan tipe data yang berbeda. Jadi untuk mengatasi masalah ini C ++ menyediakan fitur untuk membuat satu fungsi generik daripada banyak fungsi yang dapat bekerja dengan tipe data yang berbeda dengan menggunakan parameter template. Kumpulan kelas dan fungsi genric ini disebut Standard Template Library (STL)

Komponen STL yang sekarang menjadi bagian dari pustaka C ++ standar ditentukan di namespace std. Oleh karena itu, kita harus menggunakan direktif using namespace untuk mengimpornya ke program kita.

Sintaksis:



Menggunakan namespace std

STL memiliki tiga komponen

  • Wadah

  • Algoritma

  • Iterator

Ketiga komponen ini bekerja sama satu sama lain secara sinergis untuk memberikan dukungan terhadap berbagai solusi pemrograman. Algoritma menggunakan iterator untuk melakukan operasi yang disimpan dalam container.

Wadah adalah suatu objek yang menyimpan data dalam memori secara terorganisir. Kontainer di STL diimplementasikan oleh kelas template dan oleh karena itu dapat dengan mudah dimodifikasi dan dikustomisasi untuk menampung berbagai jenis data.

java sort arraylist dari bilangan bulat

Sebuah prosedur yang digunakan untuk memproses data yang terdapat dalam wadah didefinisikan sebagai suatu algoritma. STL mencakup berbagai jenis algoritme untuk memberikan dukungan pada tugas-tugas seperti menginisialisasi, mencari, menyalin, menyortir, dan menggabungkan, menyalin, menyortir, dan menggabungkan. Algoritma diimplementasikan oleh fungsi template.

Sebuah iterator dapat didefinisikan sebagai sebuah objek yang menunjuk ke sebuah elemen dalam sebuah wadah. Iterator dapat digunakan untuk memindahkan isi wadah. Iterator ditangani seperti pointer. Kami dapat menaikkan atau menurunkannya. Iterator menghubungkan algoritme dengan container dan memainkan peran kunci dalam manipulasi data yang disimpan di container.

Container-STL-in-C++

Pindah dengan artikel ini tentang STL di C ++

Wadah

STL mendefinisikan sepuluh kontainer yang dikelompokkan menjadi tiga kategori.

Wadah

Deskripsi

File header

Iterator

Vektor

Ini dapat didefinisikan sebagai array dinamis. Ini memungkinkan akses langsung ke elemen apa pun.

Akses acak

Daftar

Ini adalah daftar linier dua arah. Ini memungkinkan penyisipan dan penghapusan di mana saja

Dua arah

dan

Ini adalah antrian berujung ganda. Memungkinkan penyisipan dan penghapusan di kedua ujungnya. Mengizinkan akses langsung ke elemen apa pun.

Akses acak

set

Ini adalah wadah asosiasi untuk menyimpan set unik. Memungkinkan pencarian cepat.

Dua arah

multiset

Ini adalah wadah asosiasi untuk menyimpan set non-unik.

Dua arah

peta

Ini adalah wadah asosiasi untuk menyimpan pasangan kunci / nilai unik. Setiap kunci hanya dikaitkan dengan satu nilai.

Dua arah

multimap

Ini adalah wadah asosiasi untuk menyimpan kunci / nilai di mana satu kunci dapat dikaitkan dengan lebih dari satu nilai (pemetaan satu-ke-banyak). Ini memungkinkan pencarian berbasis kunci.

Dua arah

tumpukan

Tumpukan standar mengikuti last-in-first-out (LIFO)

Tidak ada iterator

antre

Antrian standar mengikuti first-in-first-out (FIFO)

Tidak ada iterator

prioritas-antrian

Elemen pertama selalu menjadi elemen dengan prioritas tertinggi

Tidak ada iterator

Sequence Containers

Kontainer urutan menyimpan elemen dalam urutan linier. Semua elemen terkait satu sama lain dengan posisinya di sepanjang garis. Mereka memungkinkan penyisipan elemen dan semuanya mendukung beberapa operasi pada mereka.

STL menyediakan tiga jenis elemen urutan:

  • Vektor
  • Daftar
  • dan

Wadah asosiatif:

Mereka dirancang sedemikian rupa sehingga dapat mendukung akses langsung ke elemen menggunakan kunci. Mereka tidak berurutan. Ada empat jenis

wadah asosiatif:

  1. Set
  2. Multiset
  3. Peta
  4. Multimap

Semua wadah di atas menyimpan data dalam struktur yang disebut pohon yang memfasilitasi dengan cepat

mencari, menghapus, dan memasukkan tidak seperti berurutan. Kumpulan kontainer atau multiset dapat menyimpan berbagai item dan menyediakan operasi untuk memanipulasinya menggunakan nilai sebagai kuncinya.

Dan peta atau Multimap digunakan untuk menyimpan item secara berpasangan, satu yang disebut kunci dan lainnya

disebut nilai.

Kontainer turunan:

STL menyediakan tiga kontainer turunan yaitu, stack, queue, dan priority_queue. Ini juga dikenal sebagai adaptor kontainer.

Ada tiga jenis wadah turunan:

1. Tumpukan

2. Antrian

3.Priority_quue

Tumpukan, antrian dan antrian prioritas dapat dengan mudah dibuat dari kontainer urutan yang berbeda. Kontainer turunan tidak mendukung iterator dan oleh karena itu kami tidak dapat menggunakannya untuk manipulasi data. Namun, mereka mendukung dua fungsi anggota pop () dan push () untuk mengimplementasikan operasi penghapusan dan penyisipan.

Pindah dengan artikel ini tentang STL di C ++

Algoritma

Algoritme adalah fungsi yang dapat digunakan secara umum di berbagai wadah untuk memproses kontennya. Meskipun setiap kontainer menyediakan fungsi untuk operasi dasarnya, STL menyediakan lebih dari enam puluh algoritme standar untuk mendukung operasi yang lebih luas atau kompleks. Algoritme standar juga mengizinkan kita untuk bekerja dengan dua jenis wadah yang berbeda pada waktu yang bersamaan.

Algoritma STL memperkuat filosofi dapat digunakan kembali. Dengan menggunakan algoritma ini, programmer dapat menghemat banyak waktu dan tenaga. Untuk memiliki akses ke algoritma STL, kita harus memasukkannya ke dalam program kita.

Algoritma STL, berdasarkan sifat operasi yang mereka lakukan, dapat dikategorikan sebagai berikut:

  • Algoritme nonmutasi

  • Algoritme mutasi

  • Algoritme pengurutan

  • Tetapkan algoritme

  • Algoritma relasional

Pindah dengan artikel ini tentang STL di C ++

Iterator:

Iterator bertindak seperti pointer dan digunakan untuk mengakses elemen penampung. Kami menggunakan iterator untuk menelusuri konten kontainer. Iterator ditangani seperti pointer. Kami dapat menaikkan atau menurunkannya sesuai kebutuhan kami. Iterator menghubungkan kontainer dengan algoritme dan memainkan peran penting dalam manipulasi data yang disimpan di dalam kontainer. Mereka sering digunakan untuk melewati dari satu elemen ke elemen lainnya, proses ini disebut iterasi melalui wadah.

cara keluar dari program di java

Ada lima jenis iterator:

1. masukan

2. Keluaran

3. Maju

4. Dua arah

5. Acak

Iterator

Metode akses

Arah gerakan

Kemampuan I / O

Ucapan

Memasukkan

Linear

Teruskan saja

Hanya baca

Tidak bisa disimpan

Keluaran

Linear

Teruskan saja

Tulis saja

Tidak bisa disimpan

Meneruskan

Linear

Teruskan saja

Baca tulis

Bisa diselamatkan

Dua arah

Linear

Maju dan mundur

Baca tulis

Bisa diselamatkan

Acak

Acak

Maju dan mundur

Baca tulis

Bisa diselamatkan

Jenis iterator yang berbeda harus digunakan dengan jenis wadah yang berbeda seperti itu saja

urutan dan wadah asosiatif diizinkan untuk melakukan perjalanan melalui iterator. Setiap jenis iterator digunakan untuk menjalankan fungsi tertentu. Iterator input dan output mendukung fungsi paling sedikit. Mereka hanya dapat digunakan untuk melewati dalam wadah. Iterator maju mendukung semua operasi iterator input dan output dan juga mempertahankan posisinya di container. Sebuah iterator dua arah, sementara mendukung semua operasi iterator maju, memberikan kemampuan untuk bergerak ke arah belakang dalam penampung.

Jadi kami telah sampai pada akhir artikel ini tentang 'STL di C ++'. Jika Anda ingin mempelajari lebih lanjut, lihat oleh Edureka, perusahaan pembelajaran online terpercaya. Kursus pelatihan dan sertifikasi Java J2EE dan SOA Edureka dirancang untuk melatih Anda baik konsep inti dan lanjutan Java bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar blog ini dan kami akan menghubungi Anda kembali secepatnya.