《C++ Primer》习题9.20的问题

/*
 * =====================================================================================
 *
 *       Filename:  ex9-20.cpp
 *
 *    Description:  判断一个vector<int>容器中的元素是否与一个list<int>中的完全相同
 *
 *        Version:  1.0
 *        Created:  2014年11月16日 19时59分13秒
 *       Revision:  none
 *       Compiler:  gcc
 *
 *
 * =====================================================================================
 */
#include <iostream>
#include <vector>
#include <list>
using namespace std;

bool compare(list<int> listNum, vector<int> vectorNum);

int main()
{
    list<int> listNum;
    vector<int> vectorNum;
    int temp;
    cout << "list 初始化... " << endl;
    while (cin >> temp)
    {
        listNum.push_back(temp);
    }
    cin.clear(); //使流对象重新设为有效状态

    cout << "vector 初始化... " << endl;
    while (cin >> temp)
    {
        vectorNum.push_back(temp);
    }

    if (compare(listNum, vectorNum))
    {
        cout << "两容器相等!" << endl;
    }
    else
    {
        cout << "两容器不相等!" << endl;
    }

    return 0;
}

bool compare(list<int> listNum, vector<int> vectorNum)
{
    list<int>::iterator iterList = listNum.begin();
    vector<int>::iterator iterVector = vectorNum.begin();

    for(; (iterList != listNum.end()) && (iterVector != vectorNum.begin()); ++iterList, ++iterVector)
    {
        if (*iterList != *iterVector)
            return false;
    }

    if (iterList == listNum.end() && iterVector == vectorNum.end())
        return true;
    else
        return false;
}

简直要崩溃了,调试也找不出问题,到底哪里错了啊?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值