一个判断vector容器内部数据是否相同的程序
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> ivec1, ivec2;
int ival;
cout < < "Enter ivec1:(Ctrl+Z to end) " < <endl;
while(cin > > ival)
ivec1.push_back(ival);
cin.clear();
cout < < "Enter ivec2: " < <endl;
while(cin > > ival)
ivec2.push_back(ival);
if(ivec1.size() == ivec2.size()){
cout < < "vector容器大小相同 " < <endl;
for(vector <int> ::iterator iter=ivec1.begin(); iter!=ivec1.end(); ++iter)
for(vector <int> ::iterator it=ivec2.begin(); it!=ivec2.end(); ++it){
if( (*iter) != (*it)){
cout < < "not equal. " < <endl;
return 0;
}
}
cout < < "equal. " < <endl;
return 0;
}else{
cout < < "vector容器大小都不同 " < <endl;
}
return 0;
}
程序运行没有错 可是判断不入人意
请问程序哪里错了? 怎么修改
[解决办法]
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> ivec1, ivec2;
int ival;
cout < < "Enter ivec1:(Ctrl+Z to end) " < <endl;
while(cin > > ival)
ivec1.push_back(ival);
cin.clear();
cout < < "Enter ivec2: " < <endl;
while(cin > > ival)
ivec2.push_back(ival);
if(ivec1.size() == ivec2.size()){
cout < < "vector容器大小相同 " < <endl;
vector <int> ::iterator iter=ivec1.begin();
vector <int> ::iterator it=ivec2.begin();
for(; iter!=ivec1.end(); ++iter, ++it) {
if( (*iter) != (*it)){
cout < < "not equal. " < <endl;
system( "pause ");
return 0;
}
}
cout < < "equal. " < <endl;
system( "pause ");
return 0;
}else{
cout < < "vector容器大小都不同 " < <endl;
}
system( "pause ");
return 0;
}