Rumah >pembangunan bahagian belakang >C++ >Laksanakan pilih atur penuh C++ bagi rentetan yang diberikan menggunakan STL
Apabila aksara rentetan yang diberikan disusun semula dalam sebarang bentuk, susunan rentetan terbentuk. Sebagai contoh, dalam tutorial ini, kita akan membincangkan cara untuk mencetak semua pilih atur rentetan yang diberikan menggunakan perpustakaan templat standard C++
Input : s = “ADT” Output : “ADT”, “ATD”, “DAT”, “DTA”, “TAD”, “TDA” Explanation : In the given output as you can see all the string are made up of same three character present in our string and are just rearranged thus they fit in the definition of a permutation of a string now there is one more thing to note these are all the permutations possible of string s.
Terdapat dua cara untuk mencetak semua pilih atur rentetan yang diberikan
Kami pergi ke Kaedah pertama yang digunakan ialah menggunakan kaedah putaran. Dalam kaedah ini, kami akan menggunakan fungsi putar STL, yang digunakan untuk memutar rentetan, dan kami akan menggunakan rekursi untuk mencetak susunan.
C++ kod untuk kaedah di atas
#include<bits/stdc++.h> using namespace std; void permutations(string s, string ans){ if(s.size() == 0) { // when our string which needs to //be rotated becomes empty then it means //that our permutation is stored in ans cout << ans << "\n"; return ; } for(int i = 0; i < s.size(); i++){ permutations(s.substr(1), ans + s[0]); // we are adding the // first character in our ans // passing all elements from index 1 in our // rotate string for next function. rotate(s.begin(), s.begin()+1, s.end()); //rotating such that our second element becomes first } } int main(){ string s = "ADT"; // given string permutations(s, ""); return 0; }
ADT ATD DTA DAT TAD TDA
Sekarang kita akan menggunakan satu lagi fungsi STL, next_Permutation, sebagai nilai pulangan seterusnya bagi thiss rentetan itu wujud. Jika tidak, pulangan palsu.
Seperti yang anda ketahui, fungsi ini menyemak pilihatur seterusnya, oleh itu, kita perlu mengisih rentetan secara leksikografi untuk mendapatkan semua pilih atur yang mungkin.
C++ kod untuk kaedah di atas
#include<bits/stdc++.h> using namespace std; int main(){ string s = "ADT"; // given string sort(s.begin(), s.end()); // sorting the string do{ cout << s << "\n"; // printing the permutations }while(next_permutation(s.begin(), s.end())); // till next_permutations returns false return 0; }
ADT ATD DAT DTA TAD TDA
Dalam program di atas, kami mengisih rentetan dan kemudian dengan bantuan fungsi next_permutation, kami mencetak semua pilih atur yang mungkin.
Dalam tutorial ini, kami mencetak semua pilih atur yang mungkin bagi rentetan yang diberikan dengan bantuan STL dalam C++. Kami juga mempelajari program C++ untuk masalah tersebut dan beberapa fungsi asas STL serta penggunaannya. Kami harap anda mendapati tutorial ini membantu.
Atas ialah kandungan terperinci Laksanakan pilih atur penuh C++ bagi rentetan yang diberikan menggunakan STL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!