简单的程序诠释C++ STL算法系列之十二:find_end
来源:互联网 发布:数据库设计的步骤 编辑:程序博客网 时间:2024/05/29 08:46
C++STL的非变易算法(Non-mutating algorithms)是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。
find_end算法在一个序列中搜索出最后一个与另一序列匹配的子序列。有如下两个函数原型,在迭代器区间[first1, last1)中搜索出与迭代器区间[first2, last2)元素匹配的子序列,返回首元素的迭代器或last1。
函数原型:
template<class ForwardIterator1, class ForwardIterator2> ForwardIterator1 find_end( ForwardIterator1 _First1, ForwardIterator1 _Last1, ForwardIterator2 _First2, ForwardIterator2 _Last2 );template<class ForwardIterator1, class ForwardIterator2, class Pr> ForwardIterator1 find_end( ForwardIterator1 _First1, ForwardIterator1 _Last1, ForwardIterator2 _First2, ForwardIterator2 _Last2, BinaryPredicate _Comp );
示例程序:
/******************************************************************* * Copyright (C) Jerry Jiang * File Name : find_end.cpp * Author : Jerry Jiang * Create Time : 2011-10-12 20:07:20 * Mail : jbiaojerry@gmail.com * Blog : http://blog.csdn.net/jerryjbiao * Description : 简单的程序诠释C++ STL算法系列之十二 * 非变易算法 : 最后一个子序列搜索 find_end ******************************************************************/#include <algorithm>#include <vector>#include <iostream>using namespace std;int main(){vector<int> v1;v1.push_back(5);v1.push_back(-2);v1.push_back(4);v1.push_back(3);v1.push_back(-2);v1.push_back(4);v1.push_back(8);v1.push_back(-2);v1.push_back(4);v1.push_back(9);vector<int>::const_iterator iter;cout << "v1: " ;for (iter = v1.begin(); iter != v1.end(); ++iter){cout << *iter << " ";}cout << endl;vector<int> v2;v2.push_back(-2);v2.push_back(4);cout << "v2: " ;for (iter = v2.begin(); iter != v2.end(); ++iter){cout << *iter << " ";}cout << endl;vector<int>::iterator iLoaction;iLoaction = find_end(v1.begin(), v1.end(), v2.begin(), v2.end());if (iLoaction != v1.end()){cout << "v1中找到最后一个匹配V2的子序列,起始位置在:" << "v1[" << iLoaction - v1.begin() << "]" << endl;}return 0;}
*******************************************************************************************************************************
C++经典书目索引及资源下载:http://blog.csdn.net/jerryjbiao/article/details/7358796
********************************************************************************************************************************
- 简单的程序诠释C++ STL算法系列之十二:find_end
- 简单的程序诠释C++ STL算法系列之一:for_each
- 简单的程序诠释C++ STL算法系列之一:for_each
- 简单的程序诠释C++ STL算法系列: find & find_if
- 简单的程序诠释C++ STL算法系列之一:for_each
- 简单的程序诠释C++ STL算法系列之二:find
- 简单的程序诠释C++ STL算法系列之三:find_if
- 简单的程序诠释C++ STL算法系列之四:adjacent_find
- 简单的程序诠释C++ STL算法系列之五:find_first_of
- 简单的程序诠释C++ STL算法系列之六:count
- 简单的程序诠释C++ STL算法系列之七:count_if
- 简单的程序诠释C++ STL算法系列之八:mismatch
- 简单的程序诠释C++ STL算法系列之九:equal
- 简单的程序诠释C++ STL算法系列之十:search
- 简单的程序诠释C++ STL算法系列之十一:search_n
- 简单的程序诠释C++ STL算法系列之十三:copy
- 简单的程序诠释C++ STL算法系列之十四:copy_backward
- 简单的程序诠释C++ STL算法系列之十五:swap
- 聚类分析
- flash as3与php通信
- 把每天都过成最好的一天
- 推荐阅读
- Visual Assist 1837 for VS2010
- 简单的程序诠释C++ STL算法系列之十二:find_end
- 新手指南-指针(翻译)
- 蝴蝶效应
- [C#] DataView用法
- 内存操作
- DataView
- c语言链表
- 你的爱能做到这些吗?
- Android uses-permission大全