给出两个 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循环的条件判断是 && 。