1,使用兰布达表达式完成数组遍历打印,用find函数实现查找数组元素(需要引入include)
void main()
{
vector<int> v;
v.push_back(12);
v.push_back(145);
v.push_back(2);
v.push_back(76);
for_each(v.begin(), v.end(), [](int v){ cout << v << endl; });//用兰布达表达式完成打印数组值
cout << "\n\n\n\n\n";
auto i = find(v.begin(), v.end(), 12);//查找数组元素,
cout << *i << endl;
cin.get();
}
2、find_if_not利用兰布达表达式查找不符合条件的数字(需要引入include
void main()
{
vector<int> v;
v.push_back(12);
v.push_back(145);
v.push_back(2);
v.push_back(76);
for_each(v.begin(), v.end(), [](int i){cout << i << endl; });
auto i = find_if_not(v.begin(), v.end(), [](int v)->bool{return (v < 4); });//如果这个数字不小于4则返回第一个不小于4的数字
cout << "\n\n\n\n";
if (i == v.end())
{
cout << "未找到" << endl;
}
else
{
cout << *i << endl;
}
cin.get();
}
3、sort函数对数组进行排序,fill函数填充数组(include)
void main()
{
vector<int> v;
v.push_back(23);
v.push_back(2);
v.push_back(324);
v.push_back(1);
sort(v.begin(), v.end());//对v进行排序,如果已有数据则进行覆盖
fill(v.begin() + 2, v.end() - 1, 67);
for_each(v.begin(), v.end(), [](int v){cout << v << endl; });//
cin.get();
}
4、count方法,统计multiset中的某个元素数量
void main()
{
multiset<int> set;
set.insert(23);
set.insert(2234);
set.insert(23);
set.insert(34);
set.insert(23);
set.insert(4);
int num = count(set.begin(), set.end(), 23);//统计multiset中某个元素的数量
cout << num << endl;
cin.get();
}
5、random_shuffle对数组进行重新排序(include)
void main()
{
vector<int> v;
int i = 0;
for (; i < 5; i++)
{
v.push_back(i);
}
random_shuffle(v.begin(), v.end());//对一个数组进行重新排序,结果是随机的
for_each(v.begin(), v.end(), show<int>());
cout << "\n\n\n\n\n" << endl;
random_shuffle(v.begin(), v.end());
for_each(v.begin(), v.end(), show<int>());
cout << "\n\n\n\n\n" << endl;
random_shuffle(v.begin(), v.end());
for_each(v.begin(), v.end(), show<int>());
cin.get();
}
6,rotate函数,对数组元素进行整理
void main()
{
vector<int> v;
for (int i = 0; i < 5; i++)
{
v.push_back(i);
}
rotate(v.begin(), v.begin()+2, v.end()-1);//将v.begin()到v.begin()+2的数据移动到v.end()-1之后,
for_each(v.begin(), v.end(), show<int>());
cin.get();
}
7,prev_permutation函数 记录数组的排序过程
void mainwww()
{
int a[4] = { 2, 1, 3, 10 };
do
{
cout << a[0] << " " << a[1] << " " << a[2]<< " " << a[3] << "\n";
} while (prev_permutation(a, a + 4));//排序并显示步骤
cin.get();
}
8,对对象数组进行排序
class student
{
public:
int age;
string name;
public:
student(int age, string name) :name(name), age(age)
{
}
bool operator<(const student &s) const
{
return this->age < s.age;
}
};
void main()
{
vector<student> s;
{
student stu(34, "libai");
s.push_back(stu);
}
{
student stu(56, "dufu");
s.push_back(stu);
}
{
student stu(3334, "wangwei");
s.push_back(stu);
}
{
student stu(3, "baijuyi");
s.push_back(stu);
}
sort(s.begin(), s.end());
for (int i = 0; i < s.size(); i++)
{
cout << s[i].name << endl;
}
cin.get();
}