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

C++中不熟的函数

1.memset()

头文件:<string.h>

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<numeric>
//前两个参数是累加的元素范围 第三个参数是累加和的初值
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<iostream>
#include<algorithm> // 函数头文件
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;
}

6.emplace_back()

emplace_back() 是 C++ STL(标准模板库)中的一个向容器尾部插入元素的函数,它用于在容器末尾直接构造一个新的元素,而不是像 push_back() 一样先创建一个临时对象再将其拷贝或移动到容器中。

具体来说,emplace_back() 函数会根据传入的参数直接在容器尾部构造一个新的元素,而无需进行额外的拷贝或移动操作。这样可以提高性能,尤其是当元素类型比较复杂时,避免了多余的构造和析构过程。

例:

std::vector<int> vec;
vec.emplace_back(10);  // 在容器尾部直接构造一个值为 10 的新元素

参考资料:

  1. C++小知识
  2. Min_element和Max_element函数
  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云霄星乖乖的果冻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值