题目描述
array 的长度定死在类型里,erase 删不掉元素——去重后「缩水」的部分只能靠有效长度来标记。读入 8 个整数存进 array<int, 8>:
- 先从小到大排序(自己写双循环的选择排序或插入排序,不许用
sort); - 再用
unique(a.begin(), a.end())把相邻重复挪到区间尾部,它返回新逻辑末尾的迭代器; - 用
it - a.begin()算出去重后的个数 。
输出去重个数与去重升序结果。
输入格式
一行 8 个整数。
输出格式
第一行一个整数 :去重后的个数。
第二行 个整数:去重后从小到大,用空格分隔。
样例
输入:
4 1 4 5 1 4 9 9
输出:
4
1 4 5 9
排序后是 1 1 4 4 4 5 9 9,相邻重复合并后有效部分只剩 1 4 5 9——array 删不掉尾巴,个数得用返回值数出来。
数据范围
。提示:unique 只合并相邻重复,所以要先排序;array 没有 erase 可用,有效长度全靠 it - a.begin()。