求助!
#include <bits/stdc++.h>
using namespace std;
multiset<string> st;
int main() {
int n;
cin >> n;
getchar();
for (int i = 1; i <= n; i++) {
string a;
getline(cin, a);
cout << i << endl;
st.insert(a);
}
cout << st.size() << endl;
multiset<string>::iterator it;
it = st.begin();
while (it != st.end()) {
cout << *it << endl;
it++;
}
return 0;
}
共 6 条回复
@root @Brilliance thx,and so,Maybe this way is wrong
这个可以map或者字典树解决
我用 ai 给你优化了一下
好的,那我们来分析一下你提供的代码,看看是否有需要改进的地方。
代码功能分析
读取输入:
n
,表示接下来会有n
行字符串输入。getline
函数逐行读取字符串,并将其插入到multiset<string>
中。输出:
multiset
的大小和其中所有元素。代码问题与优化
使用
getchar()
:n
后,你使用了getchar()
来消耗换行符。这是为了确保后续的getline
能正确读取整行字符串。多余的输出:
迭代器遍历:
multiset
中的所有元素,这是正确且常见的方法。优化建议
以下是优化后的代码:
改进点总结:
如果你还有其他问题或需要进一步优化,请告诉我!
@root