set只能通过迭代器访问,只有vector和string可以通过*(it+i)来访问
#include<bits/stdc++.h>
using namespace std;
set<int> st;
int main() {
int n, a;
scanf ("%d", &n);
for (int i = 0; i < n; i++) {
scanf ("%d", &a);
int sum = 0;
while (a != 0) {
int now = a % 10;
a = a / 10;
sum += now;
}
st.insert(sum);
}
cout << st.size() << endl;
for (auto it = st.begin(); it != st.end(); it++) {
if (it != st.begin()) printf (" ");
cout << *it;
}
return 0;
}
本文介绍如何使用C++中的set数据结构,通过迭代器处理整数输入,计算每个数的各位之和并插入集合,最后输出集合元素个数和序列。着重展示了set的特性以及*(it+i)访问方式的应用。
132

被折叠的 条评论
为什么被折叠?



