从零开始--为面试做准备,代码篇(一)

开通了新的博客,写下自己的小白历程 2014.1.21起。都是在A题过程中所遇到的困难,记录下解决方式。


1,While(cin)会进行无限循环,估计和构造函数有关,而改为while(cin) cin>>n;则正常输入,这里while(cin)while(1)都可表示无限循环,然而,while(cin)有可能被错误输入终止,例如nint型的,而输入一个char则输入终止。

 

2,如何用new开二维数组:定义二维数组array[i][j]

(1)定义一维代替

char *array;

array = new char[x*y];

*(array+i*y+j);来表示array[i][j]

(2)定义一个二维数组

char **array;

array = new char *[x];

for(int i=0;i<x;i++)

    array[i] = new char[y];

array[i][j]直接表示

但是:注意delete

for(i=0;i<x;i++)

    delete[] array[i];

delete[] array;

 

3,error expected constant expression:希望是常量表达式

出现在如果A[M][N]中的MN未知,需要运行的时候从cin进来,那么直接定义A[M][N]是无法事先分配空间的,用动态分配解决。

 

3,error C2109: subscript requires array or pointer type 下标需要数组或者指针形式

当定义int *A; A=new int[M*N];后直接使用A[i][j]会出现这样的问题,不可以直接访问,因为它本质上是一个一维数组,改成*(A+i*N+j)进行访问即可。

 

4,记录运算符重载error C2803: 'operator +' must have at least one formal parameter of class type

两个不能都是C++的标准类型,以防止用户修改用于标准类型数据的运算符性质。重载的运算符必须和用户定义的类型对象一起使用,参数至少应有一个是类对象(或者类对象的引用)


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值