刷题c++ 思考

1 有一个vector数组,要从中去掉一个数,使的这个数组中的数的连乘积最大,返回这个数的下标(数组中可能有正数,负数,0 )

int getMax(Vector &v1,int index)

{

 

}

 

写一下思路:

来一次遍历,记录数组中的正数的最小值,

记录数组中的负数的个数和负数的最大值,

记录数组中的0的个数,

如果负数的个数是偶数或者0,并且没有0 ,那么去掉数组中正数的最小值,并返回它的下标

如果负数的个数是奇数,并且没有0,那么去掉数组中负数的最大值,并返回它的下标

如果0的个数大于等于2,那么返回哪个下标都一样

如果有一个0,并且负数的个数是奇数,那么去掉任意一个非0的数连乘结果都是0

如果有一个0,并且负数的个数是偶数,那么去掉0这个数,并返回它的下标。

2找到一个目录下文件名包含xyz的文件,并删除

3将程序执行的错误信息输出的a.txt文件中

4有两个类 A和B,现在A需要调用B中的成员函数,B需要调用A中的成员函数写出这样的代码实例。

头文件包含的问题,相互包含。

class A
{
public:
    void FunA1(){}
    void FuncA2(){}
    void FunA3(){b->funb1();}
private:
    class B *b;
 
};

class B()
{
public:
    void funb1(){}
    void funb2()
    { 
        a->FunAa();
    }
private:
    class A a;
};
 
 
解决方案二:
以前做过测试,这种相互交叉使用,定义指针是可以的,定义对象不行。
例如:类A在B前定义
 
 class B;
 class A
 { public:
      B *pb;//合法
      B b;// 非法
 }
 
class B
{
public:
    A a;//合法
    A *pa; //合法
};

在一个类中写了成员函数,但是不做具体实现,编译会有什么问题吗?

class A  
{
public:
A(){};
void test();//没有实现
virtual ~A(){};

};
编译可以通过,为什么啊?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aFakeProgramer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值