您的位置:首页 > 编程语言 > C语言/C++

C++学习笔记(二十三)遍历算法

2018-03-26 19:29 239 查看
vector<int>  v;
for (int i = 0; i < 10; i++)
v.push_back(i+1);     //把1-10插入容器vector中
 // 遍历算法
// 第一个参数:要遍历的数据的起始位置
 // 第二个参数:要遍历的数据的结束位置
 // 第三个参数:函数对象,要对数据做些什么事情
// 运行过程:从开始到结束 一个一个取出元素,给第三个参数调用
 for_each(v.begin(), v.end(), Show());    // 函数对象
 cout << endl;
//for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
//  s(*it);
for_each(v.begin(), v.end(), print);     
// 普通函数
for_each(v.begin(), v.end(), printT<int>);
//for_each()有一个特殊性质就是它能返回其操作,即返回第三个操作的结果

// 函数和函数对象有什么区别,函数对象可以携带一些其他的属性
// 算法函数对象的传递是值传递,要想获取它的值,可以通过接收算法函数的返回值来获取

 // 如果存在,返回找到的那个元素的迭代器
 // 如果不存在,返回 end()
 vector<int>::iterator it = find(v.begin(), v.end(), 6);
    if (it != v.end())
     cout << "找到元素: " << *it << endl;
     else
 cout << "没有找到元素" << endl;

// 查找大于3的数
// 有条件的查找、设置查找条件
// 返回第一个符合要求的元素的迭代器
it = find_if(v.begin(), v.end(), greater3);
if (it != v.end())
cout << "找到第一个大于3的元素: " << *it << endl;
else
cout << "没有找到元素" << endl;

// 查找能被3整除的数
it = find_if (v.begin(), v.end(), Div());
   if (it != v.end())
   cout << "找到第一个能被3整除的元素: " << *it << endl;
   else
    cout << "没有找到元素" << endl;

v.push_back(a);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: