【发布时间】:2021-03-01 16:00:31
【问题描述】:
我想知道是否有可能使函数运行不重复?
如果它通过带有数字1,2,2,3,4 的数组循环,我希望 2 只运行一次而不是两次。喜欢1,2,3,4。如何检查tab[i] 是否已插入?我需要在 c++ 98 中执行此操作。
std::vector<int> noDup(n);
for(int k=0; k < n; k++) {
bool exists = false;
for(int c= 0; c < noDup.size(); c++) {
if(tab[k] == tab[c]) {
exists = true;
break;
}
if(exists == false) {
noDup.push_back(tab[k]);
}
}
}
for(auto c : noDup) {
cout << c << " ";
}
当我在选项卡数组 4 中插入元素数量时,
我输入2,2,3,4 我得到输出0 0 0 0 3 3 4 4 4
【问题讨论】:
-
tab是什么?请发帖minimal reproducible example -
如果可以比较
tab的元素的顺序,std::set可能会有所帮助。 -
@MikeCAT 不在 c++ 98 中。
-
@debooger3
std::set在 C++98 中确实存在。如果您无法使用它,您可能应该找出确切原因,并将其包含在您的问题中。 -
基本上可以对数组进行排序,并将每个元素与前一个元素进行比较...