把一个vector里重复的元素给去掉

std::vector<int>& delRepeat(std::vector<int>& nVector)
{
	std::set<int> nTemp(nVector.begin(),nVector.end());

	nVector.clear();

	for (std::set<int>::iterator nIterator = nTemp.begin();nIterator != nTemp.end();nIterator++)
		nVector.push_back(*nIterator);

	return nVector;
}
std::vector<int>& delRepeat(std::vector<int>& nVector)
{
    std::vector<int> nTemp(nVector.begin(),nVector.end());
    nVector.clear();
    for (std::vector<int>::iterator nIterator = nTemp.begin();nIterator != nTemp.end();nIterator++)
    {
        if(std::find(nVector.begin(),nVector.end(),*nIterator) != nVector.end())
        nVector.push_back(*nIterator);
    }
    return nVector;
}
时间: 2024-08-06 11:47:09

把一个vector里重复的元素给去掉的相关文章

JS一趟循环消除一个数组里重复的元素

var arr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4]; function deRepeat(){ var newArr=[]; var obj={}; var index=0; var l=arr.length; for(var i=0;i<l;i++){ if(obj[arr[i]]==undefined) { obj[arr[i]]=1; newArr[index++]=arr[i]; } else if(obj[arr[i]]==1) continue; } ret

消除一个数组中重复的元素

使用JavaScript消除一个数组中重复的元素 var arr1 = [1,1,2,3,4,5,6,6,6,7],arr2 = []; for(var i=0;i<arr1.length;i++){ if(arr2.indexof(arr1[i] < 0){ arr2.push(arr1[i]); } } document.write(arr2); //1,2,3,4,5,6,7

找到两个vector里相同的元素(重复的元素只要一个)

std::vector<int> findSame(const std::vector<int> &nLeft,const std::vector<int> &nRight) { std::vector<int> nResult; for (std::vector<int>::const_iterator nIterator = nLeft.begin(); nIterator != nLeft.end(); nIterator+

【C++】去除vector里重复元素的方法比较

背景:构造一个无重复的白名单,之后要在里面进行二分查找.故要求名单有序,且无重复,并且要进行二分查找,所以要采用有:随机访问迭代器类型的容器.这类容器有vector,array,deque.显然要vector和deque合适一点,但是deque并没有体现出其两端和中间插入时间为固定而非线性的优势,因为本例都在尾部插入,vector和deque同为固定时间.而deque的随机存储操作时间长,故采用vector. 一.利用STL算法unique 首先要将vector排序,排序后.利用erase配合u

如何消除一个数组里面重复的元素?

var arr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4]; function deRepeat(){ var newArr=[]; var obj={}; var index=0; var l=arr.length; for(var i=0;i<l;i++){ if(obj[arr[i]]==undefined) { obj[arr[i]]=1; newArr[index++]=arr[i]; } else if(obj[arr[i]]==1) continue; } ret

MATLAB选出一个数组里n个元素的所有组合

用nchoosek(A,n) 如: nchoosek([1,5,3,2,4,0],3) nchoosek([1,5,3,2],2)ans =     1     5     1     3     1     2     5     3     5     2     3     2 如:

创建一个接口Shape,其中有抽象方法area,类Circle 、Rectangle实现area方法计算其面积并返回。又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar;在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle对象;如是2,生成Rectangle对象;如是3,生成S

题目补充: 创建一个接口Shape,其中有抽象方法area,类Circle .Rectangle实现area方法计算其面积并返回. 又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar: 在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle对象: 如是2,生成Rectangle对象:如是3,生成Star对象).然后将Vector中元素依次取出,判断其是否为Star类.如是返回其

两种方法删除ArrayList里重复元素

方法一: /** List order not maintained **/ public static void removeDuplicate(ArrayList arlList) { HashSet h = new HashSet(arlList); arlList.clear(); arlList.addAll(h); } 方法二: /** List order maintained **/ public static void removeDuplicateWithOrder(Arra

计算一个数组里的重复值并且删去(java)

主要思想: 假设数字里的值都为正 循环判断数组 如果与前面的数字相同则变为-1 然后记录-1的个数算出重复值 然后重新new一个减去重复值长度的新数组 和原数组判断 不为-1的全部复制进来即可 代码如下: 1 package Del_Same_Num; 2 3 public class Del_Same_Num { 4 5 static int count=0; 6 7 //计算重复值 8 public static int count_same_number(int[] a) 9 { 10 f