设为首页 加入收藏

TOP

STL算法find,find_if,find_if_not,sort,fill,for_each,count,adjacent_find,random_shuffle,prev_permutation(二)
2015-07-20 17:47:00 来源: 作者: 【 】 浏览:4
Tags:STL 算法 find find_if find_if_not sort fill for_each count adjacent_find random_shuffle prev_permutati
vector

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

for_each(v1.begin(),v1.end(),show ());

cout <<"\n";

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

for_each(v1.begin(),v1.end(),show ());

cout <<"\n";

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

for_each(v1.begin(),v1.end(),show ());

cin.get();

}

运行结果:

\

用途:随机洗牌

7. partition分区

#include

#include

#include

usingnamespacestd;

template

classshow

{

public:

void operator ()(T &t)

{

cout <

}

};

boolisok(intnum)

{

return (num >= 10);

}

voidmain()

{

vector v1;

v1.push_back(20);

v1.push_back(23);

v1.push_back(6);

v1.push_back(27);

v1.push_back(5);

v1.push_back(67);

v1.push_back(10);

v1.push_back(13);

v1.push_back(14);

v1.push_back(3);

for_each(v1.begin(),v1.end(),show ());

//服务于快速排序的分区

partition(v1.begin(),v1.end(),isok);

cout <<"\n";

cout <

for_each(v1.begin(),v1.end(),show ());

cin.get();

}

运行结果:

\

分析,本质:

\

8. prev_permutation查看排序过程

#include

#include

#include

usingnamespacestd;

voidmain()

{

inta[4] = { 2, 1, 3, 10 };

do

{

cout <

//通过下面这个代码查看排序过程

} while (prev_permutation(a,a+4));

cin.get();

}

运行结果:

\

9.sort排序

#include

#include

#include

usingnamespacestd;

template

classshow

{

public:

void operator ()(T &t)

{

cout <

}

};

voidmain()

{

vector myvector;

myvector.push_back('B');

myvector.push_back('A');

myvector.push_back('C');

myvector.push_back('Y');

myvector.push_back('Z');

myvector.push_back('X');

for_each(myvector.begin(),myvector.end(),show ());

//sort(one.begin(), one.begin() + 3);

sort(myvector.begin(),myvector.begin() + 3);

cout <<"\n";

for_each(myvector.begin(),myvector.end(),show ());

cin.get();

}

运行结果:

\

10. partial_sort部分排序

#include

#include

#include

#include

#include

#include

usingnamespacestd;

classstudent

{

public:

stringname;

intscore;

public:

student(stringstr,intnum) :name(str),score(num)

{

}

bool operator <(conststudent &s1)const

{

returnthis->score < s1.score;

}

};

intmain()

{

vector ss;

{

students1("totoA", 106);

ss.push_back(s1);

}

{

students1("totoB", 101);

ss.push_back(s1);

}

{

students1("totoC", 103);

ss.push_back(s1);

}

{

students1("totoD", 105);

ss.push_back(s1);

}

{

students1("totoE", 67);

ss.push_back(s1);

}

{

students1("totoF", 58);

ss.push_back(s1);

}

{

students1("totoG", 111);

ss.push_back(s1);

}

//部分排序

partial_sort(ss.begin(),ss.begin() + 4, ss.end());//部分排序

for (inti = 0;i < 7;i++)

{

std::cout << ss[i].name << ss[i].score << "\n";

}

cin.get();

}

运行结果:

\

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Codeforces 104C Cthulhu dfs暴力.. 下一篇HDU2256-Problem of Precision(矩..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言中如何将结构体 (2025-12-24 22:20:09)
·纯C语言结构体成员变 (2025-12-24 22:20:06)
·C语言中,指针函数和 (2025-12-24 22:20:03)
·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)