发布网友 发布时间:2022-04-23 05:01
共7个回答
热心网友 时间:2022-04-18 21:59
方法一、
vector<int> sun;
//向sun添加元素
for (int i = 0; i < n; ++i)
{
sun.push_back(primes[i]);
}
sort(sun.begin(), sun.end());
//使用 erase 删除
sun.erase(unique(sun.begin(), sun.end()), sun.end());
earse的功能是删除指定范围内的所有函数;unique将相邻的重复的元素移到最后。
方法二、
排序函数(sort)和去重函数都在<algorithm>头文件中。
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<int> v;
cout << "Number of vector's element : " << endl;
int number;
cin >> number;
for (int i = 0; i < number; i++) {
int temp;
cin >> temp;
v.push_back(temp);
}
sort(v.begin(),v.end());
v.erase(unique(v.begin(), v.end()), v.end());
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
return 0;
}
unique()函数将重复的元素放到vector的尾部然后返回指向第一个重复元素的迭代器再用erase函数擦除从这个元素到最后元素的所有的元素.
return的用法:
return的作用是结束正在运行的函数,并返回函数值。return后面可以跟一个常量,变量,或是表达式。
1、函数的定义一般是这样的,例如:
inta(inti)第一个int是函数的返回值的类型,也就是return后面跟的值的类型,a是函数的名称,括号里的是传递给函数的参数,int是参数的类型,i是参数的名字
{
.../省略函数体内容
returnb;//b必须与函数头的返回值一致(此处为int型)
}
2、简单函数举例:
intaddOne(intb)
{
returnb+1;
}
该函数的作用是取得一个数,将这个数加上1,再将结果返回。
3、调用时:
intresult=addOne(2);//此时result的值为3
函数括号里的参数也可以为变量或能算出值的表达式
以上就是一个基本的函数,一般的函数都有返回值,也就是return后面跟的值,返回值可以为各种数据类型,如:int,float,double,char,a[](数组),*a(指针),结构或类(c++)
但不是所有函数都有返回值,如果某个函数无返回值,那么返回值的位置则为“void”关键字,此时函数体中无返回值,即无return的值。但是函数中也可出现return,即一个空的return句子,其作用是使函数立即结束,如voidprint()//括号中为空表示无传递参数、
{
printf("a");
printf("b");
return;//函数执行到此处结束
printf("c");
}//该函数只执行到return语句处,即屏幕上输出的为"ab"
热心网友 时间:2022-04-18 23:17
以整型数组为例,参考代码如下:
int remove_repeat(int *a, int l)//对起始地址为a,长度为l的数组进行去重,新的长度以返回值形式返回。
{
int i,j, r=0; //i,j为循环下标,r为去重后元素总数,初始值为0
for(i = 0; i < l; i ++)
{
for(j = 0; j < r; j ++)//检查是否重复
if(a[j] == a[i]) break;
if(j == r) //没有重复元素
a[r++] = a[i]; //将当前元素放置与去重后数组的尾部,并增加去重后的总数。
}
return r; //返回新的长度。
}
扩展资料:
c++关键字
if,else
条件语句的组成部分。if表示条件,之后else表示否定分支。
enum
构成枚举类型名的关键字。C++11新增带作用域的枚举,用enum class或enum struct(两者等价)声明。
explicit
这个关键字修饰构造函数声明,表示显式构造函数(模版),显式构造函数不参与特定的重载。
mutable
用于类的非静态非const数据成员,表示不受到成员函数的const的*,可以在const成员函数中使用。
operator
和操作符连用,指定一个重载了的操作符函数,也包括operator new和operator delete。
参考资料来源:百度百科-C++
热心网友 时间:2022-04-19 00:51
可以使用双重循环,逐一对比元素,如有重复,则删除的方法去重。
其思路为
1、依次遍历循环中的每一个元素。
2、对于任意一个元素,依次与之前的元素进行对比,如果有重复则删除。
3、删除操作可以采用将后续元素逐个前移,达到覆盖当前元素的效果。
在此基础上可以进行一点优化,即,不需要每次删除元素均前移所有元素,而是把需要保留的元素放到"应该"放的位置即可,这样可以提高效率。
以整型数组为例,参考代码如下:
int remove_repeat(int *a, int l)//对起始地址为a,长度为l的数组进行去重,新的长度以返回值形式返回。
热心网友 时间:2022-04-19 02:43
#include <stdio.h>热心网友 时间:2022-04-19 04:51
如果是使用STL的话,可以参考如下代码:
#include <vector>如果不是使用STL的话,只是对某个数组进行去重的话,可以参考这个过程:
1、进行排序(依然可以调用sort())
2、对比相邻两个元素,相同就删掉一个
热心网友 时间:2022-04-19 07:15
准备睡了,马上随叫了,说一下大概思路:
热心网友 时间:2022-04-19 09:57
//#include "stdafx.h"//vc++6.0加上这一行.