?
What will be the output of the following C++ code?
What will be the output of the following C++ code?
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void Display(const vector<int>& vi)
{
for (size_t i = 0; i < vi.size(); ++i)
cout << vi[i];
cout<<endl;
}
int main()
{
vector<int> vi;
vi.push_back(3);
vi.push_back(5);
sort(vi.begin(), vi.end());
Display(vi);
while(next_permutation(vi.begin(), vi.end()))
Display(vi);
return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void Display(const vector<int>& vi)
{
for (size_t i = 0; i < vi.size(); ++i)
cout << vi[i];
cout<<endl;
}
int main()
{
vector<int> vi;
vi.push_back(3);
vi.push_back(5);
sort(vi.begin(), vi.end());
Display(vi);
while(next_permutation(vi.begin(), vi.end()))
Display(vi);
return 0;
}
Answer & Solution
Correct Answer:
Option
C
The C++ code uses the STL functions sort() and next_permutation() to display permutations of a vector.
Initially, the vector vi contains two elements: 3 and 5.
The sort(vi.begin(), vi.end()) function arranges the elements in ascending order, so the first output will be 3 5.
Then, the next_permutation() function rearranges the vector to the next lexicographical permutation, which will be 5 3, and it is displayed after sorting.
After this, there are no more permutations, so the loop terminates.
Thus, the output will be: 5 3 3 5.
Initially, the vector vi contains two elements: 3 and 5.
The sort(vi.begin(), vi.end()) function arranges the elements in ascending order, so the first output will be 3 5.
Then, the next_permutation() function rearranges the vector to the next lexicographical permutation, which will be 5 3, and it is displayed after sorting.
After this, there are no more permutations, so the loop terminates.
Thus, the output will be: 5 3 3 5.
Join the Discussion
Login to post a comment or share your explanation.
Login35
53