C++常用算法库函数记录

C++常用算法库函数记录

1.std::copy

常用语法:

 copy([inputIt] first, [inputIt] last, [destinationIt] d_first);
  • 将[first, last)范围内的元素复制到起始为d_first的另一范围,它们均为迭代器

  • 返回值:指向目标范围中最后复制元素的下个元素的迭代器

例:

vector<int> a = {1, 1, 1, 1, 1};

vector<int> b = {0, 0, 0};

copy(b.begin(), b.end(), a.begin() + 1);

上述代码运行后,a输出为{1, 0, 0, 0, 1}

注意:copy函数不会分配新的空间,比如copy(a.begin(), a.end(), b.begin())是错误的,因为b那一块只分配了三个int的空间,而需要复制的个数有五个

2.std::sort

常用语法:

 sort([Iter] first, [Iter]last, [Compare, Optional] comp);
  • 排序[first, last)范围内的元素,排序依据是comp(可选),若未指定comp则默认是非降序排序。此排序不具有稳定性。
  • 无返回值
  • comp的形式可以是:
 bool cmp (const Type1 &a, const Type2 &b);
  • 还可以用lambda表达式来写cmp

例:

bool cmp (int a, int b)

{
​	reurn a > b;                                         //升序
}

vector <int> v = {1, 5, 3, 9, 2};

sort(v.begin(), v.end(), cmp);

sort
(
	v.begin(), 
	v.end(), 
	[](int a, int b)
	{
		return a < b;
	}
);

分别输出为{9, 5, 3, 2, 1}{1, 2, 3, 5, 9}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值