如何通过遍历实现C++ vector去重且不引入algorithm库
首先在代码开头补充iostream头文件,否则cout调用会编译报错:
#include <iostream> #include <vector> using namespace std; // 其余原有声明保持不变
deleteRepeats 函数的完整实现如下,完全基于遍历实现,无需引入algorithm库:
vector<int> deleteRepeats(const vector<int>& nums) { vector<int> res; bool foundRepeat; // 遍历原数组每一个元素 for (int i = 0; i < nums.size(); ++i) { foundRepeat = false; // 检查当前元素是否已经存入结果数组 for (int j = 0; j < res.size(); ++j) { if (nums[i] == res[j]) { foundRepeat = true; break; } } // 无重复则加入结果数组 if (!foundRepeat) { res.push_back(nums[i]); } } return res; }
该实现会保留元素第一次出现的顺序,你提供的4组测试用例均可正常通过。
内容的提问来源于stack exchange,提问作者Devyn Meneses
相关产品推荐
相关产品推荐

