求助,关于C++的两个vector向比较的问题!比较时运行出错!
// cpptest.cpp : 定义控制台应用程序的入口点。//
#include "stdafx.h"
#include <iostream>//包含输入输出流
#include <cctype>//可以采用C标准的头文件预定义#include <ctype.h>
#include <string>
using std::string;//使用字符串标准库
#include <vector>
using std::vector;//容器应用所需的标准库及名字的定义。
#include <bitset>
using std::bitset;//用于处理位的类对象的包含。注意是双冒号,不要犯这么低级的错误。
using namespace std;//标准库命名空间,注意有空间概念。
using std::cin;
using std::cout;
using std::endl;
#define LEN 10 //容器的长度
int _tmain(int argc, _TCHAR* argv[])
{
vector<int>ival(10,20);
vector<int>i2val(10,20);
//for (vector<int>::iterator ix=ival.begin();ix!=ival.end();ix++)
//{ //这里采用迭代器的方式。
// i2val.push_back(*ix);//当然是迭代器的++罗。
//}
//cout<<i2val.size()<<endl;
//测试两个vector是否相等。
if (ival.size()!=i2val.size())
{
cout<<"这两个vector对象是不相等的!"<<endl;
}
else if (ival.size()==0)
{
cout<<"这是两个空的vector对象,相等!"<<endl;
}
else
{
//首先定义两个迭代器,分别指向两个vector对象。
vector<int>::iterator ite1;
vector<int>::iterator ite2;
ite1=ival.begin();
ite2=i2val.begin();
//用一个循环来比较
while((*ite1==*ite2)&&(ite1!=ival.end())&&(ite2!=i2val.end()))//这里错了吗,没看出是什么问题嘛
{
++ite1;
++ite2;
}
if (ite1==ival.end())
{
cout<<"呵呵,这两个vector对象是相等的且不为空。"<<endl;
}
else
{
cout<<"呵呵,不好意思,这两个vector是不同的!"<<endl;
}
}
return 0;
}