??
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的方式实现随机排序