概述
网上写的很多办法都是用unique函数和erase函数处理:
vector<int> v;
v.append(0);
v.append(1);
v.append(2);
for (int i = 0; i < 5; i++)
{
v.push_back(i);
}
sort(v.begin(),v.end());
v.erase(unique(v.begin(), v.end()), v.end());
//unique()函数将重复的元素放到vector的尾部 然后返回指向第一个重复元素的迭代器 再用erase函数擦除从这个元素到最后元素的所有的元素
这个办法只适用于c++编程,QT中并没有unique函数,怎么办呢?
Qt中用contains函数搞定,(contains:如果矢量包含值的出现,则返回true; 否则返回false。是一个bool类型的函数)
QVector<QPointF> vPt;
vPt.append(QPointF(2,2));
vPt.append(QPointF(3,3));
for(int i=0; i<5; i++)
{
QPointF point=QPointF(i,i);
if(!vPt.contains(point)) //删除重复坐标点,int和double类型都可以
vPt.append(point);
}
//
vPt.remove(0,1);
qDebug()<<vPt;
输出:QVector(QPointF(2,2), QPointF(3,3), QPointF(0,0), QPointF(1,1), QPointF(4,4))
最后
以上就是奋斗斑马为你收集整理的Qt中删除重复的点坐的全部内容,希望文章能够帮你解决Qt中删除重复的点坐所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复