#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;
void Func(int i)
{
cout << i << endl;
}
struct myC
{
void operator()(int i)
{
cout << i << endl;
}
}myO;
void FunSc(string str)
{
cout << str.c_str() << endl;
}
struct A
{
int age;
string name;
};
void FunA(A param)
{
cout << param.age << ":" << param.name.c_str() << endl;
}
void FunMap(map<int,string>::reference i)
{
cout << i.first << ":" << i.second.c_str() << endl;
}
void FunA1(vector<A>::reference param)
{
cout << param.age << ":" << param.name.c_str() << endl;
}
int main ()
{
//vector int
vector<int> vecN;
vecN.push_back(1);
vecN.push_back(4);
vecN.push_back(2);
for_each(vecN.begin(),vecN.end(),Func); //不能用重载函数
cout << "使用类中运算符:" <<endl;
for_each(vecN.begin(),vecN.end(),myO);
//vector string
vector<string> vecStr;
vecStr.push_back("dai");
vecStr.push_back("hong");
vecStr.push_back("hui");
for_each(vecStr.begin(),vecStr.end(),FunSc);
//vector 结构体A
vector<A> vecA;
A a1;
a1.age = 10;
a1.name = "ain";
vecA.push_back(a1);
a1.age = 16;
a1.name = "aain";
vecA.push_back(a1);
a1.age = 20;
a1.name = "20ain";
vecA.push_back(vector<A>::value_type(a1));
//for_each(vecA.begin(),vecA.end(),FunA);
for_each(vecA.begin(),vecA.end(),FunA1);
//list
list<string> listStr;
listStr.push_back("dai");
listStr.push_back("hong");
listStr.push_back("hui");
for_each(listStr.begin(),listStr.end(),FunSc);
//map
map<int,string> mapN;
mapN[1] = "nai";
mapN[2] = "hai";
mapN.insert(map<int,string>::value_type(3,"3T"));
mapN.insert(pair<int,string>(4,"4T"));
for_each(mapN.begin(),mapN.end(),FunMap);
return(0);
}
STL算法for_each遍历STL容器
最新推荐文章于 2022-12-08 14:15:42 发布