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

张开发
2026/4/18 17:09:37 15 分钟阅读

分享文章

c++编程:数组元素去重,逆序输出
c编程数组元素去重题目要求输入若干个整数先对所有数字去重再进行从小到大升序排序最后按空格分隔输出结果。erase删除区间元素int main() { vectorint 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#includebits/stdc.h using namespace std; int main() { int n; // 定义整型变量 n用于临时存储每次输入的数字 vectorint 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 不会真正删除元素只是移动位置 vectorint::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;输入完所有数字后按回车然后按CtrlZWindows或CtrlDLinux/Mac再按一次回车程序就会继续执行c编程逆序输出先reverse再正序输出#includebits/stdc.h using namespace std; int main() { vectorint 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; }

更多文章