mismatch
来源:互联网 发布:网络电影 重大题材备案 编辑:程序博客网 时间:2024/05/16 07:52
pair<InputIterator1, InputIterator2> mismatch (InputIterator1 beg, InputIterator1 end, InputIterator2 cmpBeg);pair<InputIterator1, InputIterator2> mismatch (InputIterator1 beg, InputIterator1 end, InputIterator2 cmpBeg, BinaryPredicate op);
功能:
第一形式返回区间[beg, end)和以cmpBeg开头的区间之中的第一组两两相异的对应元素
第二形式返回区间[beg, end)和以cmpBeg开头的区间之中的第一组”使op(elem, cmpElem)结果为false“的对应元素
备注:
a、如果没有找到相异点,就返回一个pair,以end和第二序列的对应元素组成。这并不意味着两个序列相等,因为第二序列有可能包含更多的元素b、调用者必须保证以cmpBeg开头的区间具有足够的元素
c、如果想要了解两个序列是否相等,应使用equal()算法
d、注意op在函数调用过程中不应该改变自身状态
e、op不应该改动传进来的参数
f、时间复杂度:线性
提示:利用该算法可以进行两个区间的相等性比较,这样比equal算法作两次检查要好得多
#include <iostream>#include <vector>#include <algorithm>using namespace std;bool strEqual(const char* s1, const char* s2) { return strcmp(s1, s2) == 0 ? true : false; } int main(int argc, char *argv[]){int arr[] = {77,13,100,51};int arr1[] = {77,3,100};vector<int> vec(arr,arr + sizeof(arr)/sizeof(arr[0]));vector<int> vec1(arr1,arr1 + sizeof(arr1)/sizeof(arr1[0]));typedef vector<int>::iterator iter;pair<iter,iter> pa = mismatch(vec.begin(),vec.end(),vec1.begin());if (pa.first == vec.end() && pa.second == vec1.end()){cout << "vec 和 vec1完全相同" << endl; }else if (pa.first == vec.end()){cout << "第一组不相同的元素为(vec.end()" << "," << *pa.second << ")" << endl;}else if (pa.second == vec1.end()){cout << "第一组不相同的元素为(" << *pa.first << ",vec1.end())" << endl;}else{cout << "第一组不相同的元素为(" << *pa.first << "," << *pa.second << ")" << endl;}char* str1[] = {"appple", "pear", "watermelon", "banana", "grape"}; char* str2[] = {"appple", "pears", "watermelons", "banana", "grape"}; pair<char**, char**> retCode2 = mismatch(str1, str1+5, str2, strEqual);if (retCode2.first == str1+5 && retCode2.second == str2+5) { cout << "str1和str2 完全相同" << endl; } else { cout << "str1和str2 不相同,首次不匹配的“字符串对”为:("<< str1[retCode2.first - str1] << "," << str2[retCode2.second - str2] << ")" << endl; } return 0;}
0 0
- mismatch
- mismatch
- IDCT MisMatch
- mismatch详解
- C++ mismatch
- duplex mismatch
- argument type mismatch
- argument type mismatch
- SVN checksum mismatch
- STL_Algorithm2: equal, mismatch, lexicographical_compare
- Ordinal parameter mismatch
- argument type mismatch
- HMTLParser EncodingChangeException: character mismatch
- libtool version mismatch error
- mismatch和lexicographical_compare
- UUID mismatch detected
- argument type mismatch 解决
- ordinal parameter mismatch
- IOS 方法返回Byte*
- Struts,Spring,Hibernate三大框架问题阐述
- java中的异常
- 黑马程序员 -- IOS C语言 内存剖析1
- 【Java】配置文件概念,Java对配置文件的操作
- mismatch
- Fedora9下codeblocks安装无法编译的问题
- Java学习之线程锁--synchronized
- CentOS 7 下图形方式配置pptp客户端
- MOOC-Linux内核lab1 反汇编C语言程序
- GameBuilder开发游戏应用系列之50行代码实现微信漂流瓶
- 学习
- Java与XML的故事一:通过XSD生成Java类
- 20条Linux命令面试问答 留着用