c++编程:数组元素去重,逆序输出

c++编程:数组元素去重

题目要求

输入若干个整数,先对所有数字去重 ,再进行从小到大升序排序,最后按空格分隔输出结果。

erase删除区间元素

复制代码
int main() {
    vector<int> nums = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

    // 删除下标 2 到 5 的元素(包含2和5)
    // erase(first, last) 删除 \[first, last) 区间
    nums.erase(nums.begin() + 2, nums.begin() + 6);
    
    // 输出结果
    for(int i = 0; i < nums.size(); i++) {
        cout << nums[i] << " ";
    }
   // 输出:0 1 6 7 8 9
cpp 复制代码
#include<bits/stdc++.h>   
using namespace std;       

int main() {                
    int n;                   // 定义整型变量 n,用于临时存储每次输入的数字
    vector<int> v;           // 定义一个整型向量 v,用于存储所有输入的数字
    
    // 循环读取:不断从标准输入读取整数,直到文件结束(EOF)
    // cin >> n 会返回 cin 对象,当读取失败(如遇到 EOF)时,条件为 false
    while(cin >> n) {
        v.push_back(n);      // 将读取到的数字 n 添加到向量 v 的末尾
    }
    // 循环结束后,v 中存储了所有输入的数字(可能有重复)
    
    // 排序:将向量中的元素按升序排列
    // v.begin() 指向第一个元素,v.end() 指向最后一个元素的下一个位置
    sort(v.begin(), v.end());
    // 排序后,相同的元素会相邻排列,例如:[1, 1, 2, 2, 3, 3, 4]
    
    // 去重:将相邻的重复元素移到末尾,返回指向第一个重复元素的迭代器
    // unique 不会真正删除元素,只是移动位置
    vector<int>::iterator last = unique(v.begin(), v.end());
    // unique 执行后,向量变为:[1, 2, 3, 4, 1, 2, 3]
    // last 指向第一个重复元素的位置(即值为 1 的那个位置)
    
    // 删除重复元素:删除从 last 到末尾的所有元素
    // 左闭右开区间 [last, v.end()) 包含 last,不包含 v.end()
    v.erase(last, v.end());
    // 删除后,向量变为:[1, 2, 3, 4]
    
    // 输出去重后的所有元素
    for(int i = 0; i < v.size(); i++) {
        cout << v[i] << " ";     // 输出每个元素,后面跟一个空格
    }
    
    return 0;               
  1. 输入完所有数字后,按 回车

  2. 然后按 Ctrl+Z (Windows)或 Ctrl+D(Linux/Mac)

  3. 再按一次 回车,程序就会继续执行

c++编程:逆序输出(先 reverse 再正序输出)

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

int main() {
    vector<int> v = {1, 2, 3, 4, 5};
    
    // 反转整个向量
    reverse(v.begin(), v.end());
    
    // 正序输出(此时已经是逆序)
    for(int i = 0; i < v.size(); i++) {
        cout << v[i] << " ";
    }
    // 输出:5 4 3 2 1
    
    return 0;
}
相关推荐
起个破名想半天了20 小时前
算法与数据结构之DFS深度优先遍历
数据结构·算法·深度优先
李伟_Li慢慢20 小时前
凸包算法
人工智能·算法
徐礼昭|商派软件市场负责人20 小时前
AI Agent 蜂群协作与经验基因化:从单体执行到自组织系统的工程路径
大数据·人工智能·算法·智能体·多agent
来者皆善20 小时前
【位RAW图像处理五】任意位深位图像的中值模糊快速实现及其应用。
图像处理·人工智能·算法
happyprince20 小时前
第三观 · 深刻不忘观 —— AngelSpec 哲学与升华
人工智能·算法
汉克老师20 小时前
GESP2026年3月认证C++七级( 第三部分编程题(1、物流网络))精讲
c++·最短路·gesp7级
鱼子星_20 小时前
【C++】深入剖析list:list及其双向迭代器实现
开发语言·数据结构·c++·笔记·stl·list
脚踏实地皮皮晨20 小时前
003002004_WPF Panel 基类 官方类定义
开发语言·windows·算法·c#·wpf·visual studio
tudousisi22221 小时前
P4667 [BalticOI 2011] Switch the Lamp On复盘
c++
啊真真真21 小时前
ArgoCD:我的GitOps探索之旅与未来展望
java·算法·argocd