дана строка. поменять местами самое длинное и самое короткое слово
c++
Ответы
Відповідь:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
int main() {
vector<string>val,v;
string s;
getline(cin,s);
stringstream ss(s);
string s1;
while(getline(ss,s1,' ')) {
val.push_back(s1);
v.push_back(s1);
}
sort(val.begin(),val.end(),[](string s2,string s3) {
return s2.length()<s3.length();
});
vector<string>::iterator max=val.end()-1;
vector<string>::iterator min=val.begin();
vector<string>::iterator f=find(v.begin(),v.end(),*max);
vector<string>::iterator fi=find(v.begin(),v.end(),*min);
iter_swap(f,fi);
for( vector<string>::iterator iter=v.begin(); iter!=v.end(); iter++) {
cout<<*iter<<" ";
}
return 0;
}
Пояснення:
Как-то так