30 Contoh Vektor C++

30 Contoh Vektor C



Dalam C++, Vector ialah struktur data satu dimensi yang secara dinamik meningkatkan sendiri berdasarkan keperluan. Organisasi data (penyisipan/pengubahsuaian/pemadaman) boleh dilakukan dengan cekap dalam struktur data ini. Aplikasinya termasuk yang berikut:

  1. Mewakili vektor matematik dalam aplikasi saintifik dan kejuruteraan
  2. Barisan gilir, tindanan boleh dilaksanakan menggunakan struktur data ini, dsb.

Kebanyakan operasi dan fungsi CRUD biasa yang berkaitan dengan struktur data ini dibincangkan mengikut senario secara terperinci dengan sintaks dan coretan kod.







Topik Kandungan:

  1. Masukkan Elemen ke dalam Vektor
  2. Sisipkan Pelbagai Elemen ke dalam Vektor
  3. Akses Elemen daripada Vektor
  4. Kemas kini Elemen dalam Vektor
  5. Keluarkan Elemen Khusus daripada Vektor
  6. Keluarkan Semua Elemen daripada Vektor
  7. Kesatuan Vektor
  8. Persilangan Vektor
  9. Semak Sama ada Vektor Kosong atau Tidak
  10. Melintasi Vektor Menggunakan Const_Iterator
  11. Melintasi Vektor Menggunakan Reverse_Iterator
  12. Tolak Elemen ke dalam Vektor
  13. Pop Elemen daripada Vektor
  14. Tukar Vektor
  15. Ambil Elemen Pertama daripada Vektor
  16. Ambil Elemen Terakhir daripada Vektor
  17. Berikan Nilai Baharu pada Vektor
  18. Panjangkan Vektor Menggunakan Emplace()
  19. Panjangkan Vektor Menggunakan Emplace_Back()
  20. Elemen Maksimum Vektor
  21. Elemen Minimum Vektor
  22. Jumlah Unsur dalam Vektor
  23. Pendaraban Bijak Unsur Dua Vektor
  24. Hasil Darab Titik Dua Vektor
  25. Tukar Set kepada Vektor
  26. Keluarkan Elemen Pendua
  27. Tukarkan Vektor kepada Set
  28. Keluarkan Rentetan Kosong
  29. Tulis Vektor pada Fail Teks
  30. Cipta Vektor daripada Fail Teks

Masukkan Elemen ke dalam Vektor

The std::vector::insert() fungsi dalam C++ STL digunakan untuk memasukkan elemen pada kedudukan yang ditentukan.



Sintaks:

vektor. masukkan ( kedudukan, unsur ) ;

Mari gunakan fungsi ini dan lulus kedudukan pertama sebagai parameter yang menentukan kedudukan di mana elemen perlu dimasukkan dan menyediakan elemen sebagai parameter kedua.



Fungsi begin() boleh digunakan di sini untuk mengembalikan iterator yang menunjuk ke elemen pertama vektor input. Dengan menambah kedudukan pada fungsi ini, elemen dimasukkan pada kedudukan itu.





Mari buat vektor 'nama_pelajar' jenis rentetan dan masukkan dua rentetan pada kedudukan pertama dan kedua, satu demi satu, menggunakan fungsi insert().

#include

menggunakan ruang nama std ;

utama ( )

{

// Memulakan vektor - nama_pelajar

vektor < tali > nama_pelajar ;

cout << 'Vektor sedia ada: \n ' ;

untuk ( auto i : nama_pelajar ) cout << i << endl ;

// Masukkan 'Sravan Kumar' pada kedudukan pertama

nama_pelajar. masukkan ( nama_pelajar. bermula ( ) + 0 , 'Shravan Kumar' ) ;

// Masukkan 'Sravan Kumar' pada kedudukan kedua

nama_pelajar. masukkan ( nama_pelajar. bermula ( ) + 1 , 'Lalitha' ) ;

cout << 'Vektor akhir: \n ' ;

untuk ( auto j : nama_pelajar ) cout << j << endl ;

}

Pengeluaran:

Sebelum ini, vektor 'nama_pelajar' kosong. Selepas sisipan, vektor memegang dua elemen.



Sisipkan Pelbagai Elemen ke dalam Vektor

Kami menggunakan fungsi yang sama iaitu std::vector::insert() dalam senario ini. Tetapi kita perlu menghantar parameter tambahan/berbeza kepada fungsi yang sama untuk memasukkan berbilang elemen ke dalam vektor.

Senario 1: Memasukkan Elemen Tunggal Berbilang Kali

Dalam senario ini, kami menambah elemen yang sama beberapa kali.

Sintaks:

vektor. masukkan ( kedudukan, saiz, elemen ) ;

Untuk melakukan ini, kita perlu menghantar saiz sebagai parameter kedua kepada fungsi insert(). Jumlah parameter yang dihantar ke fungsi ini ialah tiga.

di sini:

  1. Parameter kedudukan menentukan kedudukan elemen yang akan dimasukkan. Jika saiz lebih besar daripada 1, indeks kedudukan mula akan menjadi kedudukan.
  2. Parameter saiz menentukan bilangan kali elemen akan dimasukkan.
  3. Parameter elemen mengambil elemen untuk dimasukkan ke dalam vektor.

Pertimbangkan vektor 'nama_pelajar' dengan dua rentetan. Masukkan rentetan 'Lavanya' lima kali pada kedudukan kedua.

#include

menggunakan ruang nama std ;

utama ( )

{

// Memulakan vektor - nama_pelajar

vektor < tali > nama_pelajar { 'Shravan Kumar' , 'Lalitha' } ;

cout << 'Vektor sedia ada: \n ' ;

untuk ( auto i : nama_pelajar ) cout << i << endl ;

// Masukkan 'Lavanya' pada kedudukan kedua 5 kali

nama_pelajar. masukkan ( nama_pelajar. bermula ( ) + 1 , 5 , 'Lavanya' ) ;

cout << ' \n Vektor akhir: \n ' ;

untuk ( auto j : nama_pelajar ) cout << j << endl ;

}

Pengeluaran:

Dalam vektor sedia ada, 'Sravan Kumar' berada di kedudukan pertama dan 'Lalitha' berada di kedudukan kedua. Selepas memasukkan 'Lavanya' lima kali (dari kedudukan kedua ke kedudukan keenam), 'Lalitha' berpindah ke kedudukan ketujuh (terakhir).

Senario 2: Memasukkan Pelbagai Elemen

Dalam senario ini, kami menambah elemen berbeza pada satu masa daripada vektor lain. Kami juga menggunakan fungsi yang sama di sini tetapi sintaks dan parameter akan berubah.

Sintaks:

vektor. masukkan ( kedudukan, pertama_iterator, second_iterator ) ;

Untuk melakukan ini, kita perlu menghantar saiz sebagai parameter kedua kepada fungsi insert(). Jumlah parameter yang dihantar ke fungsi ini ialah tiga.

di sini:

  1. Parameter kedudukan menentukan kedudukan elemen yang akan dimasukkan.
  2. 'first_iterator' menentukan kedudukan permulaan dari mana elemen akan dimasukkan (pada asasnya, menggunakan fungsi begin(), iterator dikembalikan yang menunjuk ke elemen pertama yang terdapat dalam bekas).
  3. 'second_iterator' menentukan kedudukan penamat sehingga elemen akan dimasukkan (pada asasnya, menggunakan fungsi end(), iterator dikembalikan yang menunjuk di sebelah titik terakhir yang terdapat dalam bekas).

Cipta dua vektor, 'marks1' dan 'marks2', daripada jenis integer. Masukkan semua elemen yang terdapat dalam vektor 'marks2' ke dalam kedudukan pertama vektor 'marks1'.

#include

menggunakan ruang nama std ;

utama ( )

{

// Memulakan vektor - markah1

vektor < int > markah1 { 100 , 89 , 90 , 78 , 98 } ;

cout << 'Vektor pertama: \n ' ;

untuk ( auto i : markah1 ) cout << i << endl ;

// Memulakan vektor - markah2

vektor < int > markah2 { 56 , Empat lima , 65 } ;

cout << 'Vektor kedua: \n ' ;

untuk ( auto j : markah2 ) cout << j << endl ;

markah1. masukkan ( bermula ( markah1 ) , mulakan ( markah2 ) , tamat ( markah2 ) ) ;



// Vektor akhir

cout << 'Vektor Pertama-Akhir: \n ' ;

untuk ( auto x : markah1 )

cout << x << ' ' ;

}

Pengeluaran:

Vektor pertama (marks1) memegang lima elemen dan vektor kedua (marks2) memegang tiga elemen. Kami melepasi parameter mula (marks1), begin(marks2), end(marks2) kepada fungsi 'insert' supaya semua elemen yang terdapat dalam vektor kedua diulang dan dimasukkan ke dalam vektor pertama pada permulaan. Jadi, vektor pertama memegang lapan elemen.

Akses Elemen daripada Vektor

1. Menggunakan Operator [].

Dalam sesetengah senario, anda mungkin mempunyai keperluan untuk memulangkan elemen tertentu sahaja daripada vektor. Mengembalikan semua elemen tidak diperlukan. Jadi, untuk mengembalikan hanya elemen khusus berdasarkan indeks, pengendali indeks dan at() fungsi digunakan.

Sintaks:

vektor [ kedudukan_indeks ]

Dalam C++, pengindeksan bermula dari 0 untuk sebarang struktur data. Jika elemen tidak wujud, ia kembali kosong (Tiada ralat atau amaran dibangkitkan).

Pertimbangkan vektor 'produk' dengan lima item. Akses semua elemen satu demi satu menggunakan kedudukan indeks.

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - produk dengan 5 rentetan

vektor < tali > produk { 'sabun' , 'syampu' , 'minyak' , 'buah-buahan' , 'sayur' } ;

//Mengakses elemen daripada produk

cout << 'Elemen Pertama:' << produk [ 0 ] << endl ;

cout << 'Elemen Kedua:' << produk [ 1 ] << endl ;

cout << 'Elemen Ketiga:' << produk [ 2 ] << endl ;

cout << 'Elemen Keempat:' << produk [ 3 ] << endl ;

cout << 'Elemen Kelima:' << produk [ 4 ] << endl ;



// Cuba akses elemen ke-9

cout << 'Elemen Kesembilan:' << produk [ 8 ] << endl ;

}

Pengeluaran:

Tiada unsur hadir pada indeks 8. Jadi, kosong dikembalikan.

2. Menggunakan Fungsi At().

At() ialah fungsi ahli yang serupa dengan kes penggunaan sebelumnya tetapi ia mengembalikan pengecualian 'std::out_of_range' apabila indeks di luar julat diberikan kepadanya.

Sintaks:

vektor. di ( kedudukan_indeks )

Kita perlu menghantar kedudukan indeks kepada fungsi ini.

Pertimbangkan vektor 'produk' dengan lima item. Akses semua elemen satu demi satu menggunakan kedudukan indeks dan cuba akses elemen yang terdapat pada kedudukan ke-9.

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - produk dengan 5 rentetan

vektor < tali > produk { 'sabun' , 'syampu' , 'minyak' , 'buah-buahan' , 'sayur' } ;

//Mengakses elemen daripada produk

cout << 'Elemen Pertama:' << produk. di ( 0 ) << endl ;

cout << 'Elemen Kedua:' << produk. di ( 1 ) << endl ;

cout << 'Elemen Ketiga:' << produk. di ( 2 ) << endl ;

cout << 'Elemen Keempat:' << produk. di ( 3 ) << endl ;

cout << 'Elemen Kelima:' << produk. di ( 4 ) << endl ;



// Mengakses elemen yang bukan dalam vektor

cout << 'Elemen Kesembilan:' << produk. di ( 8 ) << endl ;

}

Pengeluaran:

Ralat berlaku untuk mengakses elemen ke-9:

tamatkan dipanggil selepas melontar contoh daripada 'std::out_of_range'

apa ( ) : vektor :: _M_julat_semak : __n ( iaitu 8 ) >= ini - > saiz ( ) ( iaitu 5 )

Kemas kini Elemen dalam Vektor

1. Menggunakan Operator [].

Menggunakan kedudukan indeks, kita boleh mengemas kini elemen dalam vektor. Operator [] mengambil kedudukan indeks bagi elemen yang perlu dikemas kini. Elemen baharu akan diberikan kepada operator ini.

Sintaks:

vektor [ kedudukan_indeks ] = unsur

Pertimbangkan vektor 'tanda_pelajar' dengan lima nilai. Kemas kini elemen yang terdapat pada indeks 1 dan 3.

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - tanda_pelajar

vektor < int > markah_pelajar { 98 , 78 , 90 , 67 , 89 } ;

cout << 'Markah sedia ada:' << endl ;

untuk ( int itr : markah_pelajar )

cout << itr << endl ;

// Kemas kini elemen pada indeks-3 dengan 100

markah_pelajar [ 3 ] = 100 ;

// Kemas kini elemen pada indeks-1 dengan 60

markah_pelajar [ 1 ] = 60 ;

cout << 'Markah akhir:' << endl ;

untuk ( int itr : markah_pelajar )

cout << itr << endl ;

}

Pengeluaran:

Kita dapat melihat bahawa vektor akhir memegang elemen kemas kini pada indeks 1 dan 3.

2. Menggunakan Fungsi At().

Sama seperti pengendali indeks, at() pada dasarnya adalah fungsi ahli yang mengemas kini nilai berdasarkan indeks dalam iterator. Jika indeks yang dinyatakan dalam fungsi ini tidak wujud, pengecualian 'std::out_of_range' akan dilemparkan.

vektor. di ( kedudukan_indeks ) = unsur

Pertimbangkan vektor 'produk' dengan lima item. Kemas kini semua elemen yang terdapat dalam vektor dengan elemen lain.

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - produk dengan 5 rentetan

vektor < tali > produk { 'sabun' , 'syampu' , 'minyak' , 'buah-buahan' , 'sayur' } ;

cout << 'Produk Sedia Ada:' << endl ;

untuk ( rentetan itr : produk )

cout << itr << endl ;

// Mengemas kini semua rentetan

produk. di ( 0 ) = 'Kek' ;

produk. di ( 1 ) = 'Coklat' ;

produk. di ( 2 ) = 'Buah-buahan' ;

produk. di ( 3 ) = 'Bawang' ;

produk. di ( 4 ) = 'Minuman ringan' ;



cout << ' \n Produk Akhir: ' << endl ;

untuk ( rentetan itr : produk )

cout << itr << endl ;

}

Pengeluaran:

Keluarkan Elemen Khusus daripada Vektor

Dalam C++, the std::vector::erase() fungsi digunakan untuk mengalih keluar elemen/julat elemen tertentu daripada vektor. Unsur-unsur dikeluarkan berdasarkan kedudukan iterator.

Sintaks:

vektor. memadam ( kedudukan iterator )

Mari lihat sintaks untuk mengalih keluar elemen tertentu daripada vektor. Kita boleh menggunakan fungsi begin() atau end() untuk mendapatkan kedudukan elemen yang terdapat dalam vektor untuk dialih keluar.

Pertimbangkan vektor 'produk' dengan lima item.

  1. Alih keluar elemen ketiga dengan menyatakan pemula begin(). Begin() menunjuk ke elemen pertama dalam vektor. Jika kita menambah dua pada fungsi ini, ia menunjukkan kepada elemen ketiga.
  2. Alih keluar elemen terakhir dengan menyatakan lelaran end(). End() menunjuk ke elemen terakhir dalam vektor.
#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - produk dengan 5 rentetan

vektor < tali > produk { 'sabun' , 'syampu' , 'minyak' , 'buah-buahan' , 'sayur' } ;

cout << 'Produk Sedia Ada:' << endl ;

untuk ( rentetan itr : produk )

cout << itr << endl ;



// Alih keluar elemen ke-3

produk. memadam ( produk. bermula ( ) + 2 ) ;

cout << ' \n Selepas mengalih keluar elemen ke-3: \n ' ;

untuk ( rentetan itr : produk )

cout << itr << endl ;

// Alih keluar elemen terakhir

produk. memadam ( produk. tamat ( ) ) ;

cout << ' \n Selepas mengalih keluar elemen terakhir: \n ' ;

untuk ( rentetan itr : produk )

cout << itr << endl ;

}

Pengeluaran:

Kini, hanya terdapat tiga elemen (“sabun”, “syampu”, “buah-buahan”) yang wujud dalam vektor “produk”.

Keluarkan Semua Elemen daripada Vektor

Senario 1: Keluarkan Julat Elemen daripada Vektor

Mari gunakan fungsi std::vector::erase() untuk mengalih keluar berbilang elemen dalam julat.

Sintaks:

vektor. memadam ( iterator dahulu, iterator terakhir )

Dua iterator (begin() menunjuk ke elemen pertama dan end() menunjuk ke fungsi elemen terakhir) digunakan untuk menentukan julat.

Pertimbangkan vektor 'produk' dengan lima item dan keluarkan semua elemen dari kedudukan kedua. Untuk mencapai matlamat ini, lelaran pertama ialah begin (produk)+1 yang menunjuk kepada elemen kedua dan lelaran kedua ialah akhir (produk).

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - produk dengan 5 rentetan

vektor < tali > produk { 'sabun' , 'syampu' , 'minyak' , 'buah-buahan' , 'sayur' } ;

cout << 'Produk Sedia Ada:' << endl ;

untuk ( rentetan itr : produk )

cout << itr << endl ;



// Keluarkan semua elemen dari kedudukan kedua

produk. memadam ( bermula ( produk ) + 1 ,akhir ( produk ) ) ;

cout << ' \n Produk Akhir: \n ' ;

untuk ( rentetan itr : produk )

cout << itr << endl ;

}

Pengeluaran:

Kini, hanya terdapat satu elemen (“sabun”) yang terdapat dalam vektor “produk”.

Senario 2: Keluarkan Semua Elemen daripada Vektor

Mari gunakan std::vector::clear() berfungsi untuk mengeluarkan semua elemen daripada vektor.

Sintaks:

vektor. jelas ( )

Tiada parameter dihantar ke fungsi ini.

Pertimbangkan vektor yang sama yang digunakan dalam senario pertama dan alih keluar semua elemen menggunakan fungsi clear().

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - produk dengan 5 rentetan

vektor < tali > produk { 'sabun' , 'syampu' , 'minyak' , 'buah-buahan' , 'sayur' } ;

cout << 'Produk Sedia Ada:' << endl ;

untuk ( rentetan itr : produk )

cout << itr << endl ;



// Keluarkan semua elemen daripada produk

produk. jelas ( ) ;

cout << ' \n Produk Akhir: \n ' ;

untuk ( rentetan itr : produk )

cout << itr << endl ;

}

Pengeluaran:

Kita dapat melihat bahawa tiada unsur dalam vektor 'produk'.

Kesatuan Vektor

Adalah mungkin untuk melaksanakan operasi UNION pada vektor menggunakan fungsi std::set_union(). Union mengembalikan elemen unik daripada vektor dengan mengabaikan elemen pendua. Kita perlu menghantar kedua-dua iterator ke fungsi ini. Bersama-sama dengan ini, lelaran output perlu diluluskan yang menyimpan hasil yang dikembalikan oleh kedua-dua iterator.

Sintaks:

set_union ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator res ) ;

di sini:

  1. 'first1' menunjuk kepada elemen pertama lelaran pertama (vektor).
  2. 'last1' menunjuk ke elemen terakhir lelaran pertama (vektor).
  3. 'first2' menunjuk kepada elemen pertama lelaran kedua (vektor).
  4. 'last2' menunjuk kepada elemen terakhir lelaran kedua (vektor).

Cipta dua vektor – “subjek1” dan “subjek2” – jenis integer.

  1. Isih dua vektor menggunakan fungsi sort() dengan melepasi iterator.
  2. Buat vektor keluaran (iterator).
  3. Cari penyatuan dua vektor ini menggunakan fungsi std::set_union(). Gunakan begin() sebagai lelaran pertama dan end() sebagai lelaran terakhir.
  4. Lelaran vektor output untuk memaparkan elemen yang dikembalikan oleh fungsi.
#include

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - markah1

vektor < int > markah1 = { 100 , 90 , 80 , 70 , 60 } ;



// Cipta vektor - markah2

vektor < int > markah2 = { 80 , 90 , 60 , 70 , 100 } ;

// Isih kedua-dua vektor

menyusun ( markah1. bermula ( ) , markah1. tamat ( ) ) ;

menyusun ( markah2. bermula ( ) , markah2. tamat ( ) ) ;

vektor < int > outputVektor ( markah1. saiz ( ) + markah2. saiz ( ) ) ;

vektor < int > :: iterator saya, s ;

i = set_union ( markah1. bermula ( ) , markah1. tamat ( ) ,

markah2. bermula ( ) , markah2. tamat ( ) ,

outputVektor. bermula ( ) ) ;

cout << ' \n markah1 U markah2: \n ' ;

untuk ( s = outputVektor. bermula ( ) ; s ! = i ; ++ s )

cout << * s << ' ' << ' \n ' ;

}

Pengeluaran:

Terdapat hanya lima elemen unik dalam kedua-dua vektor (subjek1 dan subjek2).

Persilangan Vektor

Mencari persilangan dua vektor boleh dilakukan menggunakan fungsi std::set_intersection(). Persimpangan mengembalikan unsur-unsur yang terdapat dalam kedua-dua vektor.

Sintaks:

set_intersection ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator res ) ;

Parameter yang dihantar ke fungsi set_union() boleh dihantar ke fungsi set_intersection() ini juga.

Cipta dua vektor – “subjek1” dan “subjek2” – jenis integer.

  1. Isih dua vektor menggunakan fungsi sort() dengan melepasi iterator.
  2. Buat vektor keluaran (iterator).
  3. Cari persilangan dua vektor ini menggunakan fungsi std::set_intersection(). Gunakan begin() sebagai lelaran pertama dan end() sebagai lelaran terakhir.
  4. Lelaran vektor output untuk memaparkan elemen yang dikembalikan oleh fungsi.
#include

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - markah1

vektor < int > markah1 = { 100 , 10 , 80 , 40 , 60 } ;



// Cipta vektor - markah2

vektor < int > markah2 = { lima puluh , 90 , 60 , 10 , 100 } ;

// Isih kedua-dua vektor

menyusun ( markah1. bermula ( ) , markah1. tamat ( ) ) ;

menyusun ( markah2. bermula ( ) , markah2. tamat ( ) ) ;

vektor < int > outputVektor ( markah1. saiz ( ) + markah2. saiz ( ) ) ;

vektor < int > :: iterator saya, s ;

i = set_intersection ( markah1. bermula ( ) , markah1. tamat ( ) ,

markah2. bermula ( ) , markah2. tamat ( ) ,

outputVektor. bermula ( ) ) ;

cout << ' \n markah1 ∩ markah2: \n ' ;

untuk ( s = outputVektor. bermula ( ) ; s ! = i ; ++ s )

cout << * s << ' ' << ' \n ' ;

}

Pengeluaran:

Terdapat hanya tiga elemen yang terdapat dalam kedua-dua vektor (subjek1 dan subjek2).

Semak Sama ada Vektor Kosong atau Tidak

Sebelum bekerja pada vektor, adalah penting untuk menyemak sama ada vektor itu kosong atau tidak. Ia juga merupakan amalan yang baik dalam projek perisian untuk menyemak sama ada vektor kosong atau tidak sebelum melakukan operasi seperti operasi CRUD, dsb.

1. Menggunakan Std::vector::empty()

Fungsi ini mengembalikan 1 jika vektor kosong (tidak mengandungi sebarang elemen). Jika tidak, 0 dikembalikan. Tiada parameter dihantar ke fungsi ini.

2. Menggunakan Std::vector::size()

Fungsi std::vector::size() mengembalikan integer yang mewakili jumlah bilangan elemen yang terdapat dalam vektor.

Buat dua vektor - 'kolej1' dan 'kolej2'. 'Kolej1' memegang lima elemen dan 'kolej2' kosong. Gunakan kedua-dua fungsi pada kedua-dua vektor dan semak output.

#include

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - kolej1

vektor < tali > kolej1 = { 'kolej-A' , 'kolej-B' , 'kolej-C' , 'kolej-D' , 'kolej-E' } ;

// Cipta vektor - kolej2

vektor < tali > kolej2 ;

// kosong()

cout << kolej1. kosong ( ) << endl ;

cout << kolej2. kosong ( ) << endl ;

// saiz()

cout << kolej1. saiz ( ) << endl ;

cout << kolej2. saiz ( ) << endl ;

}

Pengeluaran:

Fungsi empty() mengembalikan 0 untuk “college1” dan 1 untuk “college2”. Fungsi size() mengembalikan lima untuk 'kolej1' dan 0 untuk 'kolej2'.

Melintasi Vektor Menggunakan Const_Iterator

Apabila anda mengusahakan bekas C++ seperti set, vektor, dsb., adalah mungkin untuk mengulangi semua elemen yang terdapat dalam bekas tanpa mengubah suainya. The const_iterator adalah salah satu iterator yang mencapai senario ini. Cbegin() (menunjuk ke elemen pertama dalam vektor) dan cend() (menunjuk ke elemen terakhir dalam vektor) ialah dua fungsi yang disediakan oleh setiap bekas yang digunakan untuk mengembalikan lelaran malar ke permulaan dan penghujung bekas itu. Semasa melelaran vektor, kita boleh menggunakan kedua-dua fungsi ini.

  1. Mari buat vektor bernama 'jabatan' dengan lima rentetan.
  2. Isytihar const_iterator – ctr jenis .
  3. Lelaran ke atas jabatan menggunakan lelaran sebelumnya menggunakan gelung 'untuk' dan paparkannya.
#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - jabatan

vektor < tali > jabatan = { 'Jualan' , 'Perkhidmatan' ,

'HR' , 'IT' , 'Lain-lain' } ;



vektor < tali > :: const_iterator ctr ;

// Lelaran ke atas jabatan menggunakan const_iterator - ctr.

untuk ( ctr = jabatan. cbegin ( ) ; ctr ! = jabatan. beberapa ( ) ; ctr ++ ) {

cout << * ctr << endl ;

}

}

Pengeluaran:

Melintasi Vektor Menggunakan Reverse_Iterator

The reverse_iterator juga merupakan iterator yang serupa dengan const_iterator tetapi ia mengembalikan elemen secara terbalik. rbegin() (menunjuk ke elemen terakhir dalam vektor) dan rend() (menunjuk ke elemen pertama dalam vektor) adalah dua fungsi yang disediakan oleh setiap bekas yang digunakan untuk mengembalikan lelaran malar ke penghujung dan permulaan bekas itu.

  1. Mari buat vektor bernama 'jabatan' dengan lima rentetan.
  2. Isytiharkan reverse_iterator – rtr jenis .
  3. Lelaran ke atas jabatan menggunakan lelaran sebelumnya menggunakan gelung 'untuk' dan paparkannya.
#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - jabatan

vektor < tali > jabatan = { 'Jualan' , 'Perkhidmatan' ,

'HR' , 'IT' , 'Lain-lain' } ;



vektor < tali > :: reverse_iterator rtr ;

// Lelaran ke atas jabatan menggunakan reverse_iterator - rtr.

untuk ( rtr = jabatan. mulakan ( ) ; rtr ! = jabatan. membuat ( ) ; rtr ++ ) {

cout << * rtr << endl ;

}

}

Pengeluaran:

Tolak Elemen ke dalam Vektor

Menolak atau menambahkan elemen ke dalam vektor ialah sisipan sehala yang boleh dilakukan menggunakan vektor::push_back() fungsi.

Sintaks:

vektor. menolak kembali ( unsur )

Ia memerlukan elemen untuk ditolak ke dalam vektor sebagai parameter.

Mari buat vektor kosong bernama 'jabatan' dengan lima rentetan dan tolak dua rentetan satu demi satu menggunakan fungsi push_back().

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Mulakan vektor - jabatan

vektor < tali > jabatan ;

cout << 'Jabatan sebenar:' << endl ;

untuk ( auto itr = jabatan. bermula ( ) ; itr ! = jabatan. tamat ( ) ; ++ itr )

cout << * itr << endl ;

// Tekan 'Jualan'

jabatan. menolak kembali ( 'Jualan' ) ;

// Tekan 'IT'

jabatan. menolak kembali ( 'IT' ) ;

cout << ' \n Jabatan Akhir:' << endl ;

untuk ( auto itr = jabatan. bermula ( ) ; itr ! = jabatan. tamat ( ) ; ++ itr )

cout << * itr << endl ;

}

Pengeluaran:

Pertama, kami menolak 'Jualan'. Selepas itu, 'IT' ditolak ke dalam vektor. Sekarang, vektor 'jabatan' memegang dua elemen.

Pop Elemen daripada Vektor

Jika anda ingin memadam item terakhir yang terdapat dalam vektor, menggunakan vektor::pop_back() fungsi adalah pendekatan terbaik. Ia memadamkan elemen terakhir yang terdapat dalam vektor.

Sintaks:

vektor. pop_back ( )

Tiada parameter diperlukan untuk fungsi ini. Ia menunjukkan tingkah laku yang tidak ditentukan jika kita cuba memadamkan elemen terakhir daripada vektor kosong.

Mari buat vektor kosong bernama 'jabatan' dengan lima rentetan dan padam elemen terakhir menggunakan fungsi sebelumnya. Paparkan vektor dalam kedua-dua kes.

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Mulakan vektor - jabatan

vektor < tali > jabatan = { 'Jualan' , 'IT' , 'Perkhidmatan' , 'Pemasaran' , 'HR' } ;

cout << 'Jabatan sebenar:' << endl ;

untuk ( auto itr = jabatan. bermula ( ) ; itr ! = jabatan. tamat ( ) ; ++ itr )

cout << * itr << endl ;



// Padam elemen terakhir

jabatan. pop_back ( ) ;

cout << ' \n Jabatan Akhir:' << endl ;

untuk ( auto itr = jabatan. bermula ( ) ; itr ! = jabatan. tamat ( ) ; ++ itr )

cout << * itr << endl ;

}

Pengeluaran:

'HR' ialah elemen terakhir yang terdapat dalam vektor 'jabatan'. Jadi, ia dialih keluar daripada vektor dan vektor akhir memegang 'Jualan', 'IT', 'Perkhidmatan', dan 'Pemasaran'.

Tukar Vektor

The vektor::swap() fungsi dalam C++ STL digunakan untuk menukar semua elemen yang terdapat dalam dua vektor.

Sintaks:

first_vector. bertukar-tukar ( vektor_kedua )

Ia tidak mengambil kira saiz vektor tetapi vektor hendaklah daripada jenis yang sama (ralat dilemparkan jika jenis vektor berbeza).

Mari cipta dua vektor - 'buah-buahan' dan 'sayur-sayuran' - jenis rentetan dengan saiz yang berbeza. Tukar setiap satu daripadanya dan paparkan vektor dalam kedua-dua kes.

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Mulakan vektor - buah-buahan

vektor < tali > buah-buahan = { 'Epal' , 'Mangga' } ;

cout << 'Buah Sebenar:' << endl ;

untuk ( auto itr = buah-buahan. bermula ( ) ; itr ! = buah-buahan. tamat ( ) ; ++ itr )

cout << * itr << endl ;



// Mulakan vektor - sayur-sayuran

vektor < tali > sayur-sayuran = { 'Kentang' , 'Tomato' , 'Brinjal' } ;

cout << ' \n Sayuran sebenar:' << endl ;

untuk ( auto itr = sayur-sayuran. bermula ( ) ; itr ! = sayur-sayuran. tamat ( ) ; ++ itr )

cout << * itr << endl ;



// Tukar elemen dalam kedua-dua vektor

buah-buahan. bertukar-tukar ( sayur-sayuran ) ;

cout << ' \n Buah-buahan selepas bertukar:' << endl ;

untuk ( auto itr = buah-buahan. bermula ( ) ; itr ! = buah-buahan. tamat ( ) ; ++ itr )

cout << * itr << endl ;

cout << ' \n Sayur selepas bertukar:' << endl ;

untuk ( auto itr = sayur-sayuran. bermula ( ) ; itr ! = sayur-sayuran. tamat ( ) ; ++ itr )

cout << * itr << endl ;

}

Pengeluaran:

Sebelum ini, vektor 'buah-buahan' memegang dua elemen dan vektor 'sayuran' memegang tiga elemen. Selepas bertukar, vektor 'buah' memegang tiga elemen dan vektor 'sayur' memegang dua elemen.

Ambil Elemen Pertama daripada Vektor

Dalam sesetengah kes, keperluan adalah untuk mengembalikan hanya elemen pertama daripada vektor. Fungsi vector::front() dalam C++ STL hanya mengambil elemen pertama daripada vektor.

Sintaks:

vektor. depan ( )

Fungsi ini tidak akan mengambil sebarang parameter. Jika vektor kosong, ralat akan dilemparkan.

Mari cipta dua vektor - 'buah-buahan' dan 'sayur-sayuran' - jenis rentetan dan cuba ambil elemen pertama secara berasingan daripada dua vektor.

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - buah-buahan dengan 2 elemen

vektor < tali > buah-buahan = { 'Epal' , 'Mangga' } ;

// Kembalikan elemen pertama

cout << buah-buahan. depan ( ) << endl ;



// Mulakan vektor - sayur-sayuran

vektor < tali > sayur-sayuran ;

// Cuba kembalikan elemen pertama

cout << sayur-sayuran. depan ( ) ;

}

Pengeluaran:

'Epal' ialah elemen pertama yang terdapat dalam vektor 'buah-buahan'. Jadi, ia dikembalikan. Tetapi ralat dilemparkan apabila kami cuba mengambil elemen pertama daripada vektor 'sayur-sayuran' kerana ia kosong.

Ambil Elemen Terakhir daripada Vektor

Fungsi vector::end() dalam C++ STL hanya mengambil elemen terakhir daripada vektor.

Sintaks:

vektor. belakang ( )

Fungsi ini tidak akan mengambil sebarang parameter. Jika vektor kosong, ralat akan dilemparkan.

Mari buat dua vektor - 'buah-buahan' dan 'sayur-sayuran' - jenis rentetan dan cuba ambil elemen terakhir secara berasingan daripada dua vektor.

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - buah-buahan dengan 2 elemen

vektor < tali > buah-buahan = { 'Epal' , 'Mangga' } ;

// Ambil elemen terakhir

cout << buah-buahan. belakang ( ) << endl ;



// Mulakan vektor - sayur-sayuran

vektor < tali > sayur-sayuran ;

// Cuba ambil elemen terakhir

cout << sayur-sayuran. belakang ( ) ;

}

Pengeluaran:

'Mangga' ialah elemen terakhir yang terdapat dalam vektor 'buah'. Jadi, ia dikembalikan. Tetapi ralat dilemparkan apabila kami cuba mengambil elemen terakhir daripada vektor 'sayur-sayuran' kerana ia kosong.

Berikan Nilai Baharu pada Vektor

Dalam sesetengah senario, jika anda ingin mengemas kini semua nilai dengan nilai baharu atau mencipta vektor dengan nilai yang sama, menggunakan fungsi vector::assign() ialah pendekatan terbaik. Menggunakan fungsi ini, kita boleh:

  1. Buat vektor dengan semua elemen yang serupa
  2. Ubah suai vektor sedia ada dengan elemen yang sama

Sintaks:

vektor. tugaskan ( saiz, nilai )

Dua parameter diperlukan untuk fungsi ini.

di sini:

  1. Saiz menentukan bilangan elemen yang akan diberikan.
  2. Nilai menentukan elemen yang akan diberikan.

Mari buat vektor bernama 'marks1' dengan lima nilai dan kemas kini vektor ini dengan empat elemen supaya semua elemen dalam vektor yang dikemas kini adalah sama dengan 20.

#include

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - markah1

vektor < int > markah1 = { 100 , 90 , 80 , 70 , 60 } ;

cout << 'Vektor Sebenar:' << endl ;

untuk ( int i = 0 ; i < markah1. saiz ( ) ; i ++ )

cout << markah1 [ i ] << endl ;



markah1. tugaskan ( 4 , dua puluh ) ;



cout << ' \n Vektor yang dikemas kini:' << endl ;

untuk ( int i = 0 ; i < markah1. saiz ( ) ; i ++ )

cout << markah1 [ i ] << endl ;

}

Pengeluaran:

Sebelum ini, vektor memegang lima elemen berbeza. Kini, ia hanya memegang empat elemen dan semuanya bersamaan dengan 20.

Panjangkan Vektor Menggunakan Emplace()

Kita sudah tahu bahawa elemen baharu dimasukkan secara dinamik pada sebarang kedudukan dalam vektor. Ia mungkin menggunakan fungsi vektor::emplace(). Mari lihat dengan cepat sintaks dan parameter yang diterima oleh fungsi ini.

Sintaks:

vektor. lokasi ( kedudukan const_iterator, elemen )

Dua parameter mandatori dihantar ke fungsi ini.

di sini:

  1. Parameter pertama mengambil kedudukan supaya kita boleh memasukkan elemen pada sebarang kedudukan. Kita boleh mendapatkan kedudukan menggunakan fungsi lelaran begin() atau end().
  2. Parameter kedua ialah elemen yang akan dimasukkan ke dalam vektor.

Pertimbangkan vektor 'bahan kimia' dengan dua unsur.

  1. Masukkan 'Mangan' pada kedudukan pertama - mula (bahan kimia)
  2. Masukkan 'Tembaga' pada kedudukan terakhir - hujung (bahan kimia)
  3. Masukkan 'Sulphur' pada kedudukan ketiga - mula(bahan kimia)+2
#include

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - bahan kimia

vektor < tali > bahan kimia = { 'Oksigen' , 'CO' } ;

cout << 'Bahan Kimia Sebenar:' << endl ;

untuk ( int i = 0 ; i < bahan kimia. saiz ( ) ; i ++ )

cout << bahan kimia [ i ] << endl ;



// Masukkan elemen pada kedudukan pertama

bahan kimia. lokasi ( bermula ( bahan kimia ) , 'Mangan' ) ;



// Masukkan elemen pada kedudukan terakhir

bahan kimia. lokasi ( tamat ( bahan kimia ) , 'Tembaga' ) ;



// Masukkan elemen pada kedudukan ketiga

bahan kimia. lokasi ( bermula ( bahan kimia ) + 2 , 'Sulfur' ) ;



cout << ' \n Bahan Kimia Akhir:' << endl ;

untuk ( int i = 0 ; i < bahan kimia. saiz ( ) ; i ++ )

cout << bahan kimia [ i ] << endl ;

}

Pengeluaran:

Sekarang, vektor akhir memegang lima elemen (disediakan dalam tangkapan skrin berikut).

Panjangkan Vektor Menggunakan Emplace_Back()

Elemen boleh ditambah (menambah pada akhir vektor) yang boleh dilakukan menggunakan vektor::emplace_back() fungsi.

Sintaks:

vektor. emplace_back ( unsur )

Ia adalah wajib untuk lulus elemen untuk dilampirkan pada vektor sebagai parameter.

Mari tambah dua elemen satu demi satu menggunakan fungsi emplace_back().

#include

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - bahan kimia

vektor < tali > bahan kimia = { 'Oksigen' , 'CO' } ;

cout << 'Bahan Kimia Sebenar:' << endl ;

untuk ( int i = 0 ; i < bahan kimia. saiz ( ) ; i ++ )

cout << bahan kimia [ i ] << endl ;



// Masukkan Mangan di hujung vektor

bahan kimia. emplace_back ( 'Mangan' ) ;



// Masukkan Mangan di hujung vektor

bahan kimia. emplace_back ( 'Tembaga' ) ;





cout << ' \n Bahan Kimia Akhir:' << endl ;

untuk ( int i = 0 ; i < bahan kimia. saiz ( ) ; i ++ )

cout << bahan kimia [ i ] << endl ;

}

Pengeluaran:

Sekarang, vektor akhir memegang empat elemen selepas menambah 'Manganese' dan 'Copper'.

Elemen Maksimum Vektor

  1. Buat vektor dengan beberapa elemen.
  2. Untuk mencari elemen maksimum yang terdapat dalam vektor, gunakan fungsi *max_element() yang menerima dua iterator sebagai argumen. Kedua-dua parameter ini bertindak sebagai julat dan elemen maksimum dikembalikan dalam julat yang disediakan. Kedudukan permulaan ialah begin() dan kedudukan terakhir ialah end().
* max_element ( indeks_pertama,Indeks_akhir )

Mari pertimbangkan vektor bernama 'kos_barang' yang memegang lima nilai jenis integer dan mengembalikan elemen maksimum.

#include

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - item_costs

vektor < int > kos_barang = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Kos Barangan: \n ' ;

untuk ( int i = 0 ; i < kos_barang. saiz ( ) ; i ++ )

cout << kos_barang [ i ] << endl ;



// Kembalikan elemen maksimum daripada vektor di atas - item_costs

cout << ' \n Kos Maksimum: ' << * max_element ( bermula ( kos_barang ) ,akhir ( kos_barang ) ) ;

}

Pengeluaran:

Di sini, 8900 ialah elemen maksimum antara semua elemen yang terdapat dalam vektor 'kos_barang'.

Elemen Minimum Vektor

  1. Buat vektor dengan beberapa elemen.
  2. Untuk mencari elemen minimum yang terdapat dalam vektor, gunakan fungsi *min_element() yang menerima dua iterator sebagai argumen. Kedua-dua parameter ini bertindak sebagai julat dan elemen minimum (kurang daripada semua elemen lain) dikembalikan dalam julat yang disediakan. Kedudukan permulaan ialah begin() dan kedudukan terakhir ialah end().
* elemen_min ( indeks_pertama,Indeks_akhir )

Gunakan vektor yang sama yang dicipta untuk mencari elemen maksimum dan mencari elemen minimum menggunakan fungsi *min_element().

#include

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - item_costs

vektor < int > kos_barang = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Kos Barangan: \n ' ;

untuk ( int i = 0 ; i < kos_barang. saiz ( ) ; i ++ )

cout << kos_barang [ i ] << endl ;



// Kembalikan elemen minimum daripada vektor di atas - item_costs

cout << ' \n Kos Minimum: ' << * elemen_min ( bermula ( kos_barang ) ,akhir ( kos_barang ) ) ;

}

Pengeluaran:

Di sini, 200 ialah elemen minimum antara semua elemen yang terdapat dalam vektor 'kos_item'.

Jumlah Unsur dalam Vektor

Untuk mengembalikan jumlah semua elemen yang terdapat dalam vektor, the terkumpul() fungsi dalam C++ STL digunakan. Ia menerima tiga parameter. Parameter pertama mengambil indeks pertama yang mewakili elemen permulaan dalam julat (nyatakan lelaran begin()) dan parameter kedua mengambil indeks terakhir yang mewakili elemen penamat dalam julat (nyatakan lelaran end()). Akhir sekali, kita perlu lulus nilai awal jumlah (dalam kes kita, ia adalah 0).

terkumpul ( indeks_pertama, indeks_akhir, awal_val ) ;

Buat vektor bernama 'kos_item' dengan lima elemen jenis integer dan hitung jumlahnya.

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - item_costs

vektor < int > kos_barang = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Kos Barangan: \n ' ;

untuk ( int i = 0 ; i < kos_barang. saiz ( ) ; i ++ )

cout << kos_barang [ i ] << endl ;



// Kembalikan jumlah semua elemen dalam vektor di atas - item_costs

cout << ' \n Jumlah kos: ' << terkumpul ( bermula ( kos_barang ) ,akhir ( kos_barang ) , 0 ) ;

}

Pengeluaran:

Jumlah 8900, 5677, 200, 1000, 2300 ialah 18077.

Pendaraban Bijak Unsur Dua Vektor

  1. Cipta dua vektor dengan jenis angka dan dua vektor mestilah mempunyai saiz yang sama (jumlah bilangan elemen yang terdapat dalam vektor pertama = jumlah bilangan elemen yang terdapat dalam vektor kedua).
  2. Isytiharkan vektor baharu dan gunakan untuk gelung , lakukan operasi pendaraban pada dua elemen dalam setiap lelaran, dan simpan nilai ke dalam vektor yang dicipta menggunakan fungsi push_back().
  3. untuk ( int itr = 0 ; i < first_vec. saiz ( ) ; itr ++ )

    {

    vektor_hasil. menolak kembali ( first_vec [ itr ] * sec_thing [ itr ] ) ;

    }
  4. Paparkan elemen yang terdapat dalam vektor terhasil dengan mengulanginya.

Buat vektor bernama 'kos_item' dengan lima elemen jenis integer dan hitung jumlahnya.

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta dua vektor - produk1 dan produk2 dengan 5 elemen setiap satu

vektor < int > produk1 = { 10 , dua puluh , 30 , 40 , lima puluh } ;

vektor < int > produk2 = { lima puluh , 40 , 30 , 70 , 60 } ;



vektor < int > hasil_produk ;



// Lakukan pendaraban bijak unsur

untuk ( int i = 0 ; i < produk1. saiz ( ) ; i ++ ) {

hasil_produk. menolak kembali ( produk1 [ i ] * produk2 [ i ] ) ;

}



// Paparkan vektor terhasil

cout << 'Pendaraban Vektor: \n ' ;

untuk ( int semula : hasil_produk )

cout << semula << endl ;

}

Pengeluaran:

Lelaran - 1 : 10 * lima puluh => 500

Lelaran - 2 : dua puluh * 40 => 800

Lelaran - 3 : 30 * 30 => 900

Lelaran - 4 : 40 * 70 => 2800

Lelaran - 5 : lima puluh * 60 => 3000

Hasil Darab Titik Dua Vektor

Dalam kes vektor C++, hasil darab titik ditakrifkan sebagai 'jumlah produk bagi entri yang sepadan bagi dua jujukan vektor'.

Sintaks:

produk_dalam ( Vector1 dahulu, Vector1 last, Vector2 first, Initial_Val )

Gunakan fungsi inner_product() untuk mengembalikan produk titik. Fungsi ini mengambil empat parameter yang diperlukan.

di sini:

  1. Parameter pertama merujuk kepada iterator yang menunjuk ke permulaan vektor pertama (nyatakan menggunakan fungsi begin()).
  2. Parameter kedua merujuk kepada iterator yang menunjuk ke penghujung vektor pertama (nyatakan menggunakan fungsi end()).
  3. Parameter ketiga merujuk kepada iterator yang menunjuk ke permulaan vektor kedua (nyatakan menggunakan fungsi begin()).
  4. Nilai awal perlu diluluskan sebagai parameter terakhir yang merupakan integer untuk pengumpulan produk titik.

Gunakan program yang sama yang dicipta untuk pendaraban dua vektor dan gunakan fungsi innsr_product() untuk mencari hasil darab titik bagi dua vektor.

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta dua vektor - produk1 dan produk2 dengan 5 elemen setiap satu

vektor < int > produk1 = { 10 , dua puluh , 30 , 40 , lima puluh } ;

vektor < int > produk2 = { lima puluh , 40 , 30 , 70 , 60 } ;



// Paparkan vektor terhasil

cout << 'Dot Product of products1 and products2: ' ;

cout << produk_dalam ( bermula ( produk1 ) ,akhir ( produk1 ) , mulakan ( produk2 ) , 0 ) ;

}

Pengeluaran:

( 10 * lima puluh ) + ( dua puluh * 40 ) + ( 30 * 30 ) + ( 40 * 70 ) + ( lima puluh * 60 )

=> 500 + 800 + 900 + 2800 + 3000

=> 8000

Tukar Set kepada Vektor

Terdapat banyak cara untuk menukar set kepada vektor dengan menghantar semua elemen yang dinaikkan dalam set kepada vektor. Cara terbaik dan paling mudah ialah menggunakan fungsi std::copy().

Sintaks

std :: salinan ( sourceIterator dahulu, sourceIterator terakhir, destinationIterator dahulu )

Menggunakan std::copy() fungsi yang memasukkan elemen daripada set ke dalam vektor. Ia memerlukan tiga parameter.

di sini:

  1. Parameter pertama merujuk kepada lelaran sumber yang menunjuk kepada elemen pertama dalam lelaran. Di sini, set ialah iterator sumber yang ditentukan menggunakan fungsi begin().
  2. Begitu juga, parameter kedua menunjukkan kepada elemen terakhir (fungsi end()).
  3. Parameter ketiga merujuk kepada lelaran destinasi yang menunjuk kepada elemen pertama (dinyatakan menggunakan fungsi begin())  dalam lelaran.

Mari buat set dengan lima pelajar dan salin semua elemen ke dalam vektor menggunakan fungsi sebelumnya.

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta satu set - pelajar dengan 5 elemen

ditetapkan < tali > pelajar = { 'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' } ;

cout << 'Tetapkan: \n ' ;

untuk ( rentetan i : pelajar )

cout << i << endl ;



// Cipta Vektor - saiz pelajar_vcof sama dengan saiz set

vektor < tali > pelajar_vc ( pelajar. saiz ( ) ) ;



// Sisipkan elemen daripada Set - pelajar ke dalam Vektor - student_vc.

salinan ( pelajar. bermula ( ) , pelajar. tamat ( ) , pelajar_vc. bermula ( ) ) ;



cout << ' \n vektor: \n ' ;

untuk ( rentetan i : pelajar_vc )

cout << i << endl ;

}

Pengeluaran:

Kini, semua elemen yang terdapat dalam set 'Pelajar' disalin ke dalam vektor 'pelajar_vc'.

Keluarkan Elemen Pendua

  1. Pertama, kita perlu mengisih elemen dalam vektor supaya semua elemen pendua akan bersebelahan antara satu sama lain menggunakan std::sort() fungsi.
  2. std :: menyusun ( Vektor dahulu, Vektor terakhir ) ;
  3. Gunakan fungsi std::unique() supaya elemen pendua akan dipilih. Pada masa yang sama, gunakan fungsi erase() untuk mengalih keluar pendua yang dikembalikan oleh fungsi std::unique(). Susunan unsur mungkin berubah dalam vektor akhir.
  4. vektor. memadam ( std :: unik ( Vektor dahulu, Vektor terakhir ) , Vektor terakhir ) )

Cipta vektor 'pelajar' dengan 10 elemen dan kembalikan vektor dengan mengalih keluar pendua.

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta vektor - pelajar dengan 10 elemen

vektor < tali > pelajar = { 'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' ,

'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' } ;

cout << 'Pelajar: \n ' ;

untuk ( rentetan i : pelajar )

cout << i << ' ' ;



// Isih semua elemen dalam vektor pelajar.

menyusun ( bermula ( pelajar ) , tamat ( pelajar ) ) ;



// Gunakan fungsi unique() untuk mengalih keluar pendua dengan fungsi erase().

pelajar. memadam ( unik ( bermula ( pelajar ) , tamat ( pelajar ) ) , tamat ( pelajar ) ) ;



cout << ' \n \n Pelajar Unik: \n ' ;

untuk ( auto itr = cbegin ( pelajar ) ; itr ! = beberapa ( pelajar ) ; ++ itr ) {

cout << * itr << ' ' ;

}

}

Pengeluaran:

Sekarang, semua elemen adalah unik dalam vektor.

Tukarkan Vektor kepada Set

Set tidak membenarkan elemen pendua. Jika anda menaip untuk memasukkan vektor ke dalam set dengan pendua, ia akan diabaikan. Kami menggunakan fungsi std::copy() yang sama yang digunakan dalam senario sebelumnya yang menukar set menjadi vektor.

Dalam senario ini:

  1. Parameter pertama mengambil vektor sebagai lelaran sumber yang ditentukan menggunakan fungsi begin().
  2. Parameter kedua mengambil vektor sebagai lelaran sumber yang ditentukan menggunakan fungsi end().
  3. Lulus fungsi std::inserter() yang digunakan untuk menulis ganti/menyalin elemen secara automatik pada kedudukan tertentu dalam set dengan menyediakan set dan iterator yang menghala ke penghujung set sebagai parameter.

Mari buat vektor dengan 10 integer dan salin elemen ke dalam set.

#include

menggunakan ruang nama std ;

utama ( )

{

// Buat set - tanda dengan 10 nilai

vektor < int > markah = { 12 , 3. 4 , 56 , 78 , 65 , 78 , 90 , 90 , 78 , 3. 4 } ;

cout << 'Vektor: \n ' ;

untuk ( int i : markah )

cout << i << ' ' ;



// Cipta Set - marks_set saiz yang sama dengan saiz vektor

ditetapkan < int > set_markah ;



// Sisipkan elemen daripada Set - pelajar ke dalam Vektor - student_vc.

salinan ( bermula ( markah ) ,akhir ( markah ) , penyisipan ( set_markah, tamat ( set_markah ) ) ) ;



cout << ' \n \n Set: \n ' ;

untuk ( int i : set_markah )

cout << i << ' ' ;

}

Pengeluaran:

Vektor sedia ada bernama 'marks' mempunyai 10 nilai. Selepas menyalinnya ke dalam set 'marks_set', ia hanya memegang enam elemen kerana empat elemen lain diduakan.

Keluarkan Rentetan Kosong

Tiada penggunaan rentetan kosong yang terdapat dalam vektor. Adalah satu amalan yang baik untuk mengalih keluar rentetan kosong yang terdapat dalam vektor. Mari lihat cara mengalih keluar rentetan kosong daripada vektor C++:

  1. Lelaran vektor menggunakan gelung 'untuk'.
  2. Dalam setiap lelaran, semak sama ada elemen kosong (“”) atau tidak menggunakan operator “==” dengan fungsi ahli at().
  3. Menggunakan fungsi std::erase(), keluarkan rentetan kosong selepas menyemak keadaan sebelumnya.
  4. Ulangi langkah2 dan langkah3 sehingga akhir vektor.

Mari buat vektor 'syarikat' dengan 10 rentetan. Antaranya, lima kosong dan kami mengeluarkannya dengan melaksanakan pendekatan sebelumnya.

#include

#include

menggunakan ruang nama std ;

utama ( ) {



vektor < tali > syarikat { 'Syarikat-A' , '' , 'Syarikat-B' ,

'' , 'Syarikat-C' , '' , 'Syarikat-D' , '' , '' , '' } ;



// Berulang ke atas syarikat

// dan keluarkan elemen kosong menggunakan erase()

untuk ( int itr = 1 ; itr < syarikat. saiz ( ) ; ++ itr ) {

jika ( syarikat. di ( itr ) == '' ) {

syarikat. memadam ( syarikat. bermula ( ) + itr ) ;

-- itr ;

}
}

// Paparkan vektor


untuk ( auto & i : syarikat ) {

cout << i << endl ;

}

}

Pengeluaran:

Sekarang, vektor 'syarikat' memegang rentetan bukan kosong.

Tulis Vektor pada Fail Teks

Mari kita bincangkan cara menulis semua elemen yang terdapat dalam vektor ke fail menggunakan indeks vektor menggunakan fstream .

  1. Tolak beberapa elemen ke dalamnya menggunakan fungsi push_back selepas memulakan vektor.
  2. Gunakan fungsi open() daripada pustaka 'fstream' dengan mod seperti keluar.
  3. Lintas setiap elemen yang terdapat dalam vektor menggunakan indeks dalam gelung 'untuk' dan tulis setiap elemen pada fail yang disediakan.
  4. Akhir sekali, tutup fail.

Mari kita laksanakan pendekatan sebelumnya dengan menjalankan kod C++.

#include

#include

#include

#include

menggunakan ruang nama std ;

utama ( )

{

// Cipta Vektor - v_data

// dan tolak dua elemen ke dalamnya.

vektor < tali > v_data ;

v_data. menolak kembali ( 'Selamat datang' ) ;

v_data. menolak kembali ( 'kepada LinuxHint' ) ;

aliran f ;



// Buka fail

f. buka ( 'written_file.txt' ,ios_base :: keluar ) ;

// Lelaran setiap elemen vektor dan tulis pada fail satu demi satu.

untuk ( int i = 0 ; i < v_data. saiz ( ) ; i ++ )

{

f << v_data [ i ] << endl ;

}

// Tutup fail

f. dekat ( ) ;

}

Pengeluaran:

Vektor 'v_data' memegang dua elemen dan fail dicipta dalam laluan di mana atur cara dilaksanakan dengan elemen yang terdapat dalam vektor.

Cipta Vektor daripada Fail Teks

Kami belajar cara menulis elemen yang terdapat dalam vektor ke fail teks. Di sini, mari buat vektor daripada kandungan yang terdapat dalam fail teks.

  1. Buat ' ifstream” pembolehubah yang digunakan untuk membaca maklumat daripada fail teks di mana kita mencipta vektor daripada fail.
  2. Cipta vektor kosong untuk menyimpan kandungan fail dan gunakan pembolehubah rentetan kosong sebagai bendera untuk menyemak penghujung fail.
  3. Baca baris seterusnya dari fail sehingga ia mencapai penghujung (pada asasnya menggunakan gelung 'semasa'). Gunakan fungsi push_back() untuk membaca baris seterusnya dan menolaknya ke dalam vektor.
  4. Paparkan garisan yang terdapat dalam baris secara berasingan untuk melihat unsur-unsur yang terdapat dalam vektor pada konsol.

Mari kita laksanakan pendekatan sebelumnya dengan menjalankan kod C++. Mari pertimbangkan fail 'data.txt' dengan kandungan berikut. Di sini, nama vektor ialah 'v_data'.

#include

menggunakan ruang nama std ;

utama ( )

{

// Buka fail teks - data
fail ifstream ( 'data.txt' ) ;

// Cipta vektor - v_data jenis - rentetan


vektor < tali > v_data ;

thong adalah ;

// Baca baris seterusnya daripada data.txt
// sehingga ia sampai ke penghujungnya.


sementara ( fail >> adalah ) {

// Baca baris seterusnya dan tolak ke dalam v_data

v_data. menolak kembali ( adalah ) ;

}



// Paparkan baris yang hadir dalam baris secara berasingan.

salinan ( v_data. bermula ( ) , v_data. tamat ( ) , ostream_iterator < tali > ( cout , ' \n ' ) ) ;

}

Pengeluaran:

Kita dapat melihat bahawa 'v_data' memegang lima elemen yang datang daripada fail.

Kesimpulan

Dalam artikel panjang ini, kami meneroka semua kemungkinan contoh yang digunakan dalam aplikasi masa nyata yang berkaitan dengan vektor dalam bahasa pengaturcaraan C++. Setiap contoh dijelaskan dengan sintaks, parameter, dan contoh dengan output. Komen ditambah dalam setiap kod untuk mendapatkan pemahaman yang jelas tentang kod tersebut.