算法简介:
1.sort //对容器内元素进行排序
2.random_shuffle //洗牌 指定范围内的元素随机调整次序
3.merge // 容器元素合并,并存储到另一容器中
4.reverse // 反转指定范围的元素
1.sort
功能描述:
对容器内元素进行排序
函数原型:
sort(iterator beg, iterator end,_Pred);
// 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置
// beg 开始选代器
// end 结束迭代器
//_Pred 谓词
注:sort在开发中较为常用
//利用sort进行升序
sort(v.begin(), v.end());
//改变为 降序
sort(v.begin(), v.end(), greater<int>());//内建函数对象
2.random_shuffle
功能描述:
洗牌 指定范围内的元素随机调整次序
函数原型:
random_shuffle(iterator beg, iterator end);
// 指定范围内的元素随机调整次序
// beg 开始选代器
// end 结束选代器
#include<ctime>//时间函数库
void test01()
{
srand((unsigned int)time(NULL));//随机种子,随时间变化
vector<int>v;
for (int i = 0; i < 10; i++)
{
v.push_back(i);
}
//利用洗牌 算法 打乱顺序
random_shuffle(v.begin(), v.end());
}
总结: random_shuffle洗牌算法比较实用,使用时记得加随机数种子
3.merge
功能描述:
两个容器元素合并,并存储到另一容器中
函数原型:
merge(iterator begl, iterator end1, iterator beg2, iterator end2, iterator dest);
容器元素合并,并存储到另一容器中,注意: 两个容器必须是有序的
// beg1 容器1开始迭代器
// end1 容器1结束迭代器
// beg2 容器2开始迭代器
// end2 容器2结束迭代器
// dest 目标容器开始迭代器
//提前给目标容器分配空间
vTarget.resize(v1.size() + v2.size());
//合并
merge(v1.begin(), v1.end(), v2.begin(), v2.end(), vTarget.begin());
总结: merge合并的两个容器必须的有序序列
4.reverse
功能描述:
将容器内元素进行反转
函数原型:
reverse(iterator beg, iterator end);
// 反转指定范围的元素
// beg 开始选代器
// end 结束选代器
//反转
reverse(v.begin(), v.end());
仅个人看视频笔记与理解,如有误可指出谢谢