刷力扣题过程中发现的不熟的函数

C++中不熟的函数

1.memset()

头文件:

void *memset(void *s,int c,unsigned long n);
为指针变量s所指的前n个字节的内存单元填充给定的int型数值c

如:

int a[10];
memset(a,0,sizeof(a)); //将数组a中的数全部赋值为0

2.sort()

(1)对于数组:

sort(a,a+length);//默认升序
sort(a,a+length,greater<int>())//从大到小排序
sort(a,a+length,cmp);//cmp是自己编写的函数

bool cmp(int x,int y){
	return x>y;
}

(2)对于容器

sort(v.begin(),v.end());//默认升序
sort(v.begin,v.end(),greater<int>());//降序排序
sort(v.begin,v.end(),cmp);//使用自定义的函数排序,和上面的类似

3.accumulate()

#include
//前两个参数是累加的元素范围 第三个参数是累加和的初值
int sum = accumulate(vec.begin() , vec.end() , 42); 

4.find()

//target为目标值
vector<int>::iterator result = find(vec.begin(), vec.end(), target); 
if(result == vec.end()){
    //不存在
}else{
   //存在
}

5.min_element()和max_element()

参考:
Min_element和Max_element函数

用于查找数组或容器的最值
返回迭代器,若要知道位置,则需减去起始位置

#include
#include // 函数头文件
using namespace std;

int main(){
	//数组
    int a[3] = {3, 1, 2};
    cout << "元素内最大值的位置为: " << max_element(a, a + 3) - a << endl;
    cout << "元素内最大值的值为: " << * max_element(a, a + 3) << endl;
    cout << "元素内最小值的位置为: " << min_element(a, a + 3) - a << endl;
    cout << "元素内最小值的值为: " << * min_element(a, a + 3) << endl;
	//字符串
    string s = "312";
    cout << "元素内最大值的位置为: " << max_element(s.begin(), s.end()) - s.begin() << endl;
    cout << "元素内最大值的值为: " << * max_element(s.begin(), s.end()) << endl;
    cout << "元素内最小值的位置为: " << min_element(s.begin(), s.end()) - s.begin() << endl;
    cout << "元素内最小值的值为: " << * min_element(s.begin(), s.end()) << endl;
    //容器
    vector<int> v ={3, 1, 2};
    cout << "元素内最大值的位置为: " << max_element(v.begin(), v.end()) - v.begin() << endl;
    cout << "元素内最大值的值为: " << * max_element(v.begin(), v.end()) << endl;
    cout << "元素内最小值的位置为: " << min_element(v.begin(), v.end()) - v.begin() << endl;
    cout << "元素内最小值的值为: " << * min_element(v.begin(), v.end()) << endl;
}

参考资料:

  1. C++小知识
  2. Min_element和Max_element函数

你可能感兴趣的:(C++,leetcode,算法,c++,学习)