c++primer5 题3.36

数组的话长度基本都限制的死死的
毫无意思。。。
*而vector就灵活的多,可让它长可让它短
先定义空vector,再输入多少个数来确定它的长度就比较灵活了。。。。
这题我耗费了许多时间来去想,终于成功实现自己的想法
讲解一下。。。

**本程序还有一点小要求,就是b一定要输入一次以上。。。使得q不为空vector;

1.可以让输入的两个不同的vector长度不一致
当然只能是前面长后面短,要前短后长的话自己再改改吧。。
2.两个vector长度理论可以无限长。。
3.把 cout<<整合到循环条件那里使得输入的时候更美观。
4.auto 语句一定得在输入后。。空vector可是没有迭代器的
5.核心的判断语句
只要两个vector长度不一致或者相同位置的元素不一致就
输出 不相等的结论。。。
使用了 system(cls)和 exit(0)。。。

判断vector是否相等的程序如下。。。

#include<iostream>
#include<vector>
#include<cstdlib>
using namespace std;
int main()
{
    int a=0,b=0;
    vector<int> p,q;
    while(cout<<" 输入a: "&&cin>>a)  
    { 
        p.push_back(a);
        if(cout<<" 输入b: "&&cin>>b)
             q.push_back(b);
    }
    auto p1=p.begin(),p2=p.end(),q1=q.begin(),q2=q.end();  
    for(;p1!=p2;++p1,++q1)
    {
        if(p.size()!=q.size()||*p1!=*q1) 
        {   system("cls");
            cout<<" they are not equal .";
            exit(0);
        }
    }
    system("cls");
    cout<<" they are equal.";
    return 0;   
}

关于low b数组的实现。。。

#include<iostream>
#include<vector>
#include<string>
#include<cstdlib>
using namespace std;
int main()
{
    int a[100],b[100],
    *p1=begin(a),*p2=end(a),
    *q1=begin(b),*q2=end(b);
    for(int i=0;i<100;++i)
    {     
        cin>>a[i]>>b[i];
    }
    for(;p1!=p2;++p1,++q1)
    {  
        if(*p1!=*q1)
          {
            cout<<" they are not equal. ";
            exit(0);
          }
    }
    cout<<" they are equal. ";
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值