给出两个 int 型的 vector 对象,编写程序判断一个对 象是否是另一个对象的前缀。如果两个 vector 对象的长 度不相同,假设较短的 vector 对象长度为 n,则只对这 两个对象的前面 n 个元素做比较。例如,对于 (0, 1, 1, 2) 和 (0, 1, 1, 2, 3, 5, 8) 这两个 vector,你的程 序应该返回 true。
#include<iostream> #include<vector> #include<stdio.h> using namespace std; int main(){ vector<int> number1,number2; int num1,num2; cout << "输入第一组数据:" << endl; while(cin >> num1) { number1.push_back(num1); if(getchar() == '\n') //getchar吸收换行结束该组数据输入 break; } cout << "输入第二组数据:" << endl; while(cin >> num2) { number2.push_back(num2); if(getchar() == '\n') break; } bool flag = false; for(vector<int>::iterator iter1 = number1.begin(), iter2 = number2.begin(); iter1 != number1.end() && iter2 != number2.end(); ++iter1, ++iter2) { if(*iter1 == *iter2) flag = true; else flag = false; } if(flag) cout << "true\n" << endl; else cout << "false\n" << endl; return 0; }注意for循环的条件判断是 && 。