Senarai dalam C++ adalah bekas seperti vektor, tetapi pelaksanaan senarai adalah berdasarkan dua kali ganda Senarai terpaut berbanding dengan pelaksanaan tatasusunan vektor. Senarai itu secara amnya tidak termasuk Unsur-unsur dalam senarai diedarkan dalam kedudukan berturut-turut ingatan. Senarai menyediakan operasi masa tetap yang sama di mana-mana di dalamnya, yang merupakan yang utama Gunakan ciri senarai. Sebaliknya, koleksi ialah bekas yang mengandungi nilai unik Beberapa jenis dan semua elemen diisih mengikut tertib menaik. Dua bekas ini adalah Berbeza, tetapi terdapat pelbagai cara untuk menukar senarai menjadi set. Kami membincangkan kaedah Butiran di bawah.
Cara paling mudah dan paling naif ialah mentakrifkan dua bekas berbeza; Yang lain ialah jenis set, yang menyalin setiap elemen senarai ke dalam koleksi.
list<int> myList; set<int> mySet; for ( int const &val: myList ) { mySet.insert(val); }
#include <iostream> #include <set> #include <list> using namespace std; int main(){ //initializing the list list<int> myList = { 10, 30, 65, 98, 76, 44, 32, 73, 81, 29 }; set<int> mySet; cout<< "The list contents are:" << endl; //displaying the list contents for ( int const &val: myList ) { cout << val << ' '; } //copying the elements of the list for ( int const &val: myList ) { mySet.insert(val); } cout << "\nThe set contents are:" << endl; for ( int const &val: mySet ) { cout << val << ' '; } return 0; }
The list contents are: 10 30 65 98 76 44 32 73 81 29 The set contents are: 10 29 30 32 44 65 73 76 81 98
Penunjuk permulaan dan penamat senarai mesti disediakan sebagai parameter pembina Gunakan pembina julat semasa membina koleksi.
list<int> myList; set<int> mySet(begin(myList), end(myList));
Dapatkan input dalam senarai.
Apabila membuat koleksi, hantarkan penunjuk permulaan dan penamat senarai kepada pembina julat koleksi.
Tunjukkan kandungan koleksi.
#include <iostream> #include <set> #include <list> using namespace std; int main(){ //initializing the list list<int> myList = { 30, 70, 56, 89, 67, 44, 23, 37, 18, 92 }; //using the range constructor set<int> mySet(begin(myList), end(myList)); cout<< "The list contents are:" << endl; //displaying the list contents for ( int const &val: myList ) { cout << val << ' '; } cout << "\nThe set contents are:" << endl; for ( int const &val: mySet ) { cout << val << ' '; } return 0; }
The list contents are: 30 70 56 89 67 44 23 37 18 92 The set contents are: 18 23 30 37 44 56 67 70 89 92
Fungsi salin dalam C++ membolehkan menyalin data dari satu bekas ke bekas yang lain. Untuk menggunakan Fungsi salin, penunjuk mula dan akhir senarai mesti diluluskan sebagai parameter kepada fungsi dan petunjuk kepada koleksi dan permulaan koleksi dalam koleksi Fungsi penyisipan.
list<int> myList; set<int> mySet; copy(begin(myList), end(myList), inserter(mySet, begin(mySet)));
Dapatkan input dalam senarai.
Tentukan koleksi baharu.
Lulus penunjuk mula dan akhir senarai sebagai parameter kepada fungsi salin serta koleksi dan penuding ke permulaan koleksi dalam fungsi sisip.
Menunjukkan kandungan koleksi.
#include <iostream> #include <set> #include <list> using namespace std; int main(){ //initializing the list list<int> myList = { 33, 74, 52, 84, 65, 47, 28, 39, 13, 96 }; set<int> mySet; //using the copy function copy(begin(myList), end(myList), inserter(mySet, begin(mySet))); cout<< "The list contents are:" << endl; //displaying the list contents for ( int const &val: myList ) { cout << val << ' '; } cout << "\nThe set contents are:" << endl; for ( int const &val: mySet ) { cout << val << ' '; } return 0; }
The list contents are: 33 74 52 84 65 47 28 39 13 96 The set contents are: 13 28 33 39 47 52 65 74 84 96
Apabila kita menggunakan set, kita tidak boleh menambah atau menyimpan elemen pendua pada set, tetapi Membenarkan elemen pendua disimpan dalam senarai atau struktur data seperti tatasusunan. mempunyai Dalam sesetengah kes, lebih disukai untuk menggunakan set dan bukannya senarai. Penukaran ini Teknik yang telah kita lihat sebelum ini benar-benar boleh membantu dengan ini.
Atas ialah kandungan terperinci Program C++ untuk menukar senarai kepada set. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!