暑假作业里有一道题一点头绪也没有,求帮忙

#include <iostream> #include <algorithm> #include <iterator> #include <string> using namespace std; int main( void ) { size_t n; string buf[20]; // 输入 cin >> n; copy_n( istream_iterator<string>(cin), n, buf ); // 排序 sort( buf, buf+n, [](const string& a, const string& b){return a+b>b+a;} ); // 输出 copy( buf, buf+n, ostream_iterator<string>(cout,"") ) = "\n"; }
#include <iostream> #include <algorithm> #include <iterator> #include <string> using namespace std; bool cmp( const string& a, const string& b ) { return a+b > b+a; } int main( void ) { size_t n; string buf[20]; // 输入 cin >> n; for( size_t i=0; i!=n; ++i ) cin >> buf[i]; // 排序 sort( buf, buf+n, &cmp ); // 输出 for( size_t i=0; i!=n; ++i ) cout << buf[i]; cout << endl; }