題目描述
輸入描述:
輸入第一行爲一個正整數n(1≤n≤1000),下面n行爲n個字符串(字符串長度≤100),字符串中只含有大小寫字母。
輸出描述:
數據輸出n行,輸出結果爲按照字典序排列的字符串。
輸入例子:
9 cap to cat card two too up boat boot
輸出例子:
boat boot cap card cat to too two up
解題思路
爲了讓輸入的這些字符串按照字典序進行排序,應選用STL中的multiset來存儲輸入字符串。由於string類中重載了<,所以multiset中的元素將按照<所定義的次序(即字典序)進行排序。需要注意的是,由於輸入字符串有可能會重複,所以要使用multiset而不是set。
代碼
#include <iostream>
#include <string>
#include <set>
using namespace std;
int main()
{
multiset<string> strSet; //用multiset來存儲輸入的字符串,則結果是按照字典序排列的,並且元素可以重複
int num = 0;
string str;
cin >> num;
for (int i = 0; i < num; ++i)
{
cin >> str;
strSet.insert(str);
}
for (const string &s : strSet)
{
cout << s << endl;
}
return 0;
}