C++ Дан массив из n натуральных чисел. Удалить из массива все элементы, которые не являются однозначными или двухзначными. Затем в двухзначных числах поменять местами цифры, а потом переместить однозначные числа в конец массива. При этом порядок следования чисел в группах (однозначные, двухзначные) не должен изменяться.
#include <iostream>
#include <vector>
using namespace std;
int len(int N){
int cnt = 0;
while(N > 0){
cnt++;
N /= 10;
}
return cnt;
}
void swap_digits(int &N){
string tmp;
while(N > 0){
tmp += N % 10 + '0';
N /= 10;
}
N = stoi(tmp);
}
int main(){
int n;
cin >> n;
vector<int> elems1, elems2;
for(int i = 0; i < n; i++){
int x;
cin >> x;
if(len(x) == 1)
elems1.push_back(x);
else if(len(x) == 2){
swap_digits(x);
elems2.push_back(x);
}
}
for(auto &i : elems1)
elems2.push_back(i);
for(auto &i : elems2)
cout << i << " ";
}