day18 常用算法剩下的,完结撒花!

排序算法

sort    

random_shuffle洗牌  

merge容器元素合并,存储到另一个容器中

revrese 反转元素

Sort

sort(beg , end ,_Pred谓词)

class Person 
{
public:
	Person(string name , int age ) 
	{
		this->m_name = name;
		this->m_age = age;
	}
	string m_name;
	int m_age;
};

class mycompare 
{
public:
	bool operator()(const Person& p1 , const Person& p2)
	{
		return p1.m_age > p2.m_age;
	}
};

void test01() 
{

	vector<Person>v;
	Person p1("anm", 1);
	Person p2("tggr", 13);
	Person p3("d23", 12);
	Person p4("sda", 23);
	Person p5("anm", 32);
	v.push_back(p1);
	v.push_back(p2);
	v.push_back(p3);
	v.push_back(p4);
	v.push_back(p5);
	sort(v.begin(), v.end() , mycompare());
	for (vector<Person>::iterator it = v.begin(); it != v.end(); it++) 
	{
		cout << "name :" << (*it).m_name << " age:" << (*it).m_age << endl;
	}
}

当然如果这里不适用仿函数,可以使用内建函数

sort(v.begin() , v.end() , greater<int>())

在sort函数中,其默认的是less<T>()。 所以默认是升序排序

random_shuffle

random_shuffle(beg , end )洗牌

merge

merge(beg1, end1 , beg2, end2 , dest)//dest目标容器开始迭代器

容器元素合并,存储到另一个容器中

注意:两个容器必须要是有序的  目标容器也是有序的。

reverse

reverse(beg , end)

拷贝替换算法

copy 、 replace 、 replace_if 、 swap

copy

copy(beg , end , dest)dest 目标起始

replace

replace(beg ,end ,oldvalue , newvalue)

replace_if

replace_if(beg ,end , _Pred , newvalue)

swap

算术生成算法

算术生成算法属于小型算法 需要包含 #include<numeric>

accumulate

accumulate  计算容器中元素累计总和

accumulate(beg , end , value) value 起始值   这个算法实用

fill

fill(beg ,end , value) 填充 value

集合算法

set_intersection

set_intersection  求两个容器交集

set_union

set_union 求两个容器并集

set_intersection

set_intersection(beg1,end1,beg2,end2,dest)

注意两个集合必须是有序序列   dest目标容器开始迭代器 返回交集最后一个位置的迭代器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值