设为首页 加入收藏

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 来源: 作者: 【 】 浏览:3
Tags:STL 算法 find find_if find_if_not sort fill for_each count adjacent_find random_shuffle prev_permutati
??

1find查找

#include

#include

#include

#include

#include

#include

usingnamespacestd;

voidmain()

{

vector myv;

myv.push_back(1);

myv.push_back(2);

myv.push_back(3);

myv.push_back(11);

myv.push_back(22);

myv.push_back(33);

for_each(myv.begin(),myv.end(), [](intv){cout <

auto i =find(myv.begin(),myv.end(), 23);

//说明已经到了最后面

if (i == myv.end())

{

std::cout << "23玩失踪";

}

else

{

//如果找到了则输出结果

std::cout << *i;

}

cin.get();

}

运行结果:

\

2find_if,find_if_not

#include

#include

#include

#include

#include

#include

usingnamespacestd;

voidmain()

{

vector myv;

myv.push_back(1);

myv.push_back(2);

myv.push_back(3);

myv.push_back(11);

myv.push_back(22);

myv.push_back(33);

for_each(myv.begin(),myv.end(), [](intv){cout <

std::cout << "-------" <

//找到第一个比11大的值

autoii =find_if(myv.begin(),myv.end(), [](intv)->bool{return (v > 11); });

//找到第一个不比4大的值

auto i =find_if_not(myv.begin(),myv.end(), [](intv)->bool{return (v > 4); });

if (ii == myv.end())

{

std::cout << "没找到" << endl;

}

else

{

std::cout << *ii <

}

std::cout << "-------" <

if (i == myv.end())

{

std::cout << "玩失踪";

}

else

{

std::cout << *i;

}

cin.get();

}

运行结果是:

\

3sort,fill,for_each

#include

#include

#include

#include

#include

#include

usingnamespacestd;

template

classshow

{

public:

void operator()(T &t)

{

cout <

}

};

voidmain()

{

list list1;

vector v1;

list1.push_back(121);

list1.push_back(12);

list1.push_back(122);

list1.push_back(23);

v1.push_back(121);

v1.push_back(12);

v1.push_back(122);

v1.push_back(17);

v1.push_back(23);

//list不能通过sort进行排序,如果放开这一句将出现错误

//sort(list1.begin(), list1.end());

//排序,简单的排序

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

//算法依赖于数据结构(链式,线性),不同的数据结构,算法不一样

//填充,指定位置数据进行初始化,将begin()+2到最后的数值填充为3

fill(v1.begin() + 3, v1.end(), 3);

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

cout <<"\n";

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

cin.get();

}

运行结果:

\

4.count,统计某个节点值相同的元素有多少个

#include

#include

#include

#include

#include

#include

usingnamespacestd;

voidmain()

{

multiset myset;

myset.insert(3);

myset.insert(1);

myset.insert(2);

myset.insert(1);

myset.insert(2);

myset.insert(1);

myset.insert(2);

myset.insert(1);

myset.insert(1);

myset.insert(1);

cout <<"统计总共的节点" << endl;

inti = 0;

for (autoib =myset.begin(),ie =myset.end();ib !=ie;ib++,i++)

{}

cout <

//统计有多少个节点1

cout <<"统计值为1的节点个数有多少个" << endl;

intnum =count(myset.begin(),myset.end(), 1);

cout <

cin.get();

}

运行结果:

\

5. adjacent_find,依次打印出结果:

#include

#include

#include

#include

#include

#include

usingnamespacestd;

template

classshow

{

public:

void operator ()(T &t)

{

cout <

}

};

voidmain()

{

multiset myset;

myset.insert(3);

myset.insert(1);

myset.insert(2);

myset.insert(1);

myset.insert(2);

myset.insert(1);

myset.insert(2);

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

//通过这种方式一个个的打印出结果

autoit =adjacent_find(myset.begin(),myset.end());

cout <<"\n" << *it <

it++;

cout <<"\n" << *it <

it++;

cout <<"\n" << *it <

it++;

cout <<"\n" << *it <

//查找相同的数据,可以自己确定位置

it =adjacent_find(it,myset.end());

cout <<"\n" << *it <

it++;

cout <<"\n" << *it <

it++;

cout <<"\n" << *it <

it++;

cout <<"\n" << *it <

cin.get();

}

运行结果:

\

6. random_shuffle实现随机排序

#include

#include

#include

#include

#include

#include

usingnamespacestd;

template

classshow

{

public:

void operator ()(T &t)

{

cout <

}

};

voidmain()

{

vector v1;

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

{

v1.push_back(i);

}

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

cout <<"\n";

//通过random_shuffle的方式实现随机排序

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

评论

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

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)