编写程序判断两个数组是否相等,然后编写一段类似的程序比较两个vector。

#include<iostream>#include<vector>usingnamespacestd;intmain(){vector<int>ivec1,ivec2;... #include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec1, ivec2;
int ival;
//读入两个vector 的元素值
cout << "Enter numbers for vector1(-1 to end):" << endl;
cin >> ival;
while (ival != -1) {
ivec1.push_back(ival);
cin >> ival;
}
cout << "Enter numbers for vector2(-1 to end):" << endl;
cin >> ival;
while (ival != -1) {
ivec2.push_back(ival);
cin >> ival;
}
//判断两个vector 是否相等
if (ivec1.size() != ivec2.size()) //长度不等的vector 不相等
cout << "Vector1 is not equal to vector2." << endl;
else if (ivec1.size() == 0) //长度都为0 的vector 相等
cout << "Vector1 is equal to vector2." << endl;
else {//两个vector 长度相等且不为0
vector<int>::iterator iter1, iter2;
iter1 = ivec1.begin();
iter2 = ivec2.begin();
while (*iter1 == *iter2 && iter1 != ivec1.end()
&& iter2 != ivec2.end()) {
++iter1;
++iter2;
}
if (iter1 == ivec1.end())//所有元素都相等
cout << "Vector1 is equal to vector2." << endl;

else
cout << "Vector1 is not equal to vector2." << endl;
}
system("pause");
return 0;
}
cout << "Enter numbers for vector1(-1 to end):" << endl;
cin >> ival;
while (ival != -1) {
ivec1.push_back(ival);
cin >> ival;
}
为什么 有两次 cin>>ival;
不理解谢谢
展开
 我来答
万海里寻夫
2012-09-25 · TA获得超过172个赞
知道答主
回答量:31
采纳率:0%
帮助的人:48.8万
展开全部
已改,看注释

#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec1, ivec2;
int ival;
//读入两个vector 的元素值
cout << "Enter numbers for vector1(-1 to end):" << endl;
cin >> ival;
while (ival != -1) {
ivec1.push_back(ival);
cin >> ival;
}
cout << "Enter numbers for vector2(-1 to end):" << endl;
cin >> ival;
while (ival != -1) {
ivec2.push_back(ival);
cin >> ival;
}
//判断两个vector 是否相等
if (ivec1.size() != ivec2.size()) //长度不等的vector 不相等
cout << "Vector1 is not equal to vector2." << endl;
else if (ivec1.size() == 0) //长度都为0 的vector 相等
cout << "Vector1 is equal to vector2." << endl;
else {//两个vector 长度相等且不为0
vector<int>::iterator iter1, iter2;
iter1 = ivec1.begin();
iter2 = ivec2.begin();
while (iter1 != ivec1.end() && *iter1 == *iter2) { // 先判断是不是end(),不是才判断是否相等
++iter1;
++iter2;
}
if (iter1 == ivec1.end())//所有元素都相等
cout << "Vector1 is equal to vector2." << endl;
else
cout << "Vector1 is not equal to vector2." << endl;
}
system("pause");
return 0;
}
更多追问追答
追问
cout > ival;
while (ival != -1) {
ivec1.push_back(ival);
cin >> ival;
}
为什么 有两次 cin>>ival;
不理解谢谢
追答
第一次是先输入一次,然后以此判断输入的是否为-1,不是-1的就push_back,然后再继续输入,再判断
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式