常用算法2

sortrandom_shufflemergereverse

1、

sort对容器内元素进行排序

2、

random_shuffle洗牌,指定范围内的元素随机调整次序

3、

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

4、

reverse反转指定范围的元素

sort

对容器内元素进行排序 sort(iterator beg,iterator end,_Pred);按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置,beg开始迭代器,end结束迭代器,_Pred谓词

void p3(int val) {

cout << val << " ";

}

void test() {

....

//升序

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

for_each(v.begin(), v.end(), p3);

cout << endl;

cout << "------------------------" << endl;

//降序

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

for_each(v.begin(), v.end(), p3);

}

random_shuffle

random_shuffle(iterator beg,iterator end);指定范围内的元素随机调整次序,beg开始迭代器,end结束迭代器

#include

#include

void p3(int val) {

cout << val << " ";

}

void test() {

srand((unsigned int)time(NULL));//让每次顺序不一样

vector v;

v.push_back(10);

v.push_back(15);

v.push_back(20);

v.push_back(34);

v.push_back(35);

//洗牌,打乱顺序

random_shuffle(v.begin(), v.end());

for_each(v.begin(), v.end(), p3);

}

merge

两个容器元素合并,并存储到另一个容器中 merge(iterator beg1,iterator end1,iterator beg2,iterator end2,iterator dest);两个容器元素合并,并存储到另一个容器中,两个容器必须是有序的,beg1容器1开始迭代器,end1容器1结束迭代器,beg2容器2开始迭代器,end2容器2结束迭代器,dest目标容器开始迭代器

void test() {

vector v;

v.push_back(10);

v.push_back(15);

v.push_back(20);

v.push_back(34);

v.push_back(35);

vector v1;

v1.push_back(15);

v1.push_back(89);

v1.push_back(99);

v1.push_back(100);

v1.push_back(111);

vector v3;

v3.resize(v1.size()+v.size());

merge(v.begin(), v.end(), v1.begin(), v1.end(), v3.begin());

for_each(v3.begin(), v3.end(), p3);

}

reverse

将容器内元素进行反转 reverse(iterator beg,iterator end);反转指定范围的元素,beg开始迭代器,end结束迭代器

void test() {

....

for_each(v.begin(), v.end(), p3);

cout << endl;

cout << "------------------------" << endl;

reverse(v.begin(), v.end());

for_each(v.begin(), v.end(), p3);

}

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。