Rumah >pembangunan bahagian belakang >C++ >Program C++ untuk menukar vektor kepada senarai
Vektor dalam C++ ialah tatasusunan dinamik yang boleh mengandungi sebarang jenis data, sama ada ditentukan pengguna atau primitif. Dinamik bermakna saiz vektor boleh bertambah atau berkurang berdasarkan operasi. Vektor menyokong pelbagai fungsi dan manipulasi data adalah sangat mudah. Sebaliknya, senarai adalah bekas yang sama dengan vektor, tetapi berbanding dengan pelaksanaan tatasusunan vektor, pelaksanaan senarai adalah berdasarkan senarai terpaut dua kali. Senarai menyediakan operasi masa malar yang sama di mana-mana di dalamnya, yang merupakan ciri utama menggunakan senarai. Mari kita lihat kaedah utama untuk menukar vektor kepada senarai.
Untuk menggunakan pembina julat, anda mesti menghantar penunjuk mula dan akhir vektor sebagai parameter kepada pembina semasa membuat senarai.
vector <int> ip; list <int> op( ip.begin(), ip.end() );
#include <iostream> #include <vector> #include <list> using namespace std; list <int> solve( vector <int> ip) { //initialise the list list <int> op( ip.begin(), ip.end() ); return op; } int main() { vector <int> ip( { 15, 20, 65, 30, 24, 33, 12, 29, 36, 58, 96, 88, 30, 71 } ); list <int> op = solve( ip ); //display the input cout<< "The input vector is: "; for( int i : ip ) { cout<< i << " "; } //display the output cout << "\nThe output list is: "; for( int j : op ) { cout << j << " "; } return 0; }
The input vector is: 15 20 65 30 24 33 12 29 36 58 96 88 30 71 The output list is: 15 20 65 30 24 33 12 29 36 58 96 88 30 71
Penggunaan std::list adalah serupa dengan penggunaan pembina julat. Kami lulus penunjuk permulaan dan akhir vektor dengan cara yang sama seperti pembina julat.
vector <int> ip; list <int> op(); op.assign(ip.begin(), ip.end());
#include <iostream> #include <vector> #include <list> using namespace std; list <int> solve( vector <int> ip) { //initialise the list list <int> op; op.assign( ip.begin(), ip.end() ); return op; } int main() { vector <int> ip( { 40, 77, 8, 65, 92 ,13, 72, 30, 67, 12, 88, 37, 18, 23, 41} ); list <int> op = solve( ip ); //display the input cout<< "The input vector is: "; for( int i : ip ) { cout<< i << " "; } //display the output cout << "\nThe output list is: "; for( int j : op ) { cout << j << " "; } return 0; }
The input vector is: 40 77 8 65 92 13 72 30 67 12 88 37 18 23 41 The output list is: 40 77 8 65 92 13 72 30 67 12 88 37 18 23 41
Kita boleh memasukkan data daripada vektor ke dalam senarai menggunakan fungsi sisip senarai. Senarai memerlukan penunjuk ke permulaan senarai dan penunjuk ke permulaan dan penghujung vektor.
vector <int> ip; list <int> op(); op.insert(op.begin(), ip.begin(), ip.end());
#include <iostream> #include <vector> #include <list> using namespace std; list <int> solve( vector <int> ip) { //initialise the list list <int> op; op.insert( op.begin(), ip.begin(), ip.end() ); return op; } int main() { vector <int> ip( { 30, 82, 7, 13, 69, 53, 70, 19, 73, 46, 26, 11, 37, 83} ); list <int> op = solve( ip ); //display the input cout<< "The input vector is: "; for( int i : ip ) { cout<< i << " "; } //display the output cout << "\nThe output list is: "; for( int j : op ) { cout << j << " "; } return 0; }
The input vector is: 30 82 7 13 69 53 70 19 73 46 26 11 37 83 The output list is: 30 82 7 13 69 53 70 19 73 46 26 11 37 83
Dalam C++, menukar vektor kepada senarai mempunyai faedah kerumitan operasi seragam di mana-mana dalam senarai. Terdapat beberapa cara untuk menukar vektor kepada senarai. Walau bagaimanapun, kami hanya menyebut kaedah paling mudah dan terpantas di sini.
Atas ialah kandungan terperinci Program C++ untuk menukar vektor kepada senarai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!