代码调试时积累的知识(2)

1.c++中“->”与“.“的区别

“->”是在指针中用的;“.“是在类或者结构体变量中用的。

eg:

struct aaa
{
   int a;
   int b;
};
声明:
aaa  t;
aaa* p;
p = &t;
t.a = 2;  //这里t是变量,所以用(.)
t.b = 3;
assert(p->a == 2);  //这里p是指针,所以用(->)
assert(p->b == 3);

2.c++错误:不允许使用不完整的类类型

错误原因:使用该类的文件看不到该类。

解决办法:将类的定义放到.h头文件中,在使用该类的文件中#include该头文件。

eg:在main程序中用到了一个结构体,但是代码中该结构体的定义在一个.cpp文件中,主程序只调用了该.cpp文件中的一个函数,因而在主程序文件中看不到该类。

在改之前,该被调用的函数里面用到了结构体,结构体就在该类的文件中被定义,但是返回的是一个整型变量,主程序中并没有使用该类,所以没有出现这个报错。


3.qsort的使用

(1)对结构体一级排序

struct Sample
{
double data;
int other;
}s[100]

//按照data的值从小到大将结构体排序

int cmp( const void *a ,const void *b)
{
return (*(Sample *)a).data > (*(Sample *)b).data ? 1 : -1;
}

qsort(s,100,sizeof(s[0]),cmp);

对结构体二级排序

struct Sample
{
int x;
int y;
}s[100];

//按照x从小到大排序,当x相等时按照y从大到小排序

int cmp( const void *a , const void *b )
{
struct Sample *c = (Sample *)a;
struct Sample *d = (Sample *)b;
if(c->x != d->x) return c->x - d->x;
else return d->y - c->y;
}

qsort(s,100,sizeof(s[0]),cmp);

(2)对字符串进行排序

struct Sample
{
int data;
char str[100];
}s[100];

//按照结构体中字符串str的字典顺序排序

int cmp ( const void *a , const void *b )
{
return strcmp( (*(Sample *)a)->str , (*(Sample *)b)->str );
}

qsort(s,100,sizeof(s[0]),cmp);

(3)对数据进行排序

double in[100];

int cmp( const void *a , const void *b )
{
return *(double *)a > *(double *)b ? 1 : -1;
}

qsort(in,100,sizeof(in[0]),cmp);


4.<<与>>符号

位移符号。将数字换成二进制,并且移动小数点位置。

36>>2相当于除以4;16<<2相当于乘以4.


5.wchar_t

 wchar_t是C++的字符数据类型,char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,字符型无法表示。
  wchar_t数据类型为16位,所能表示的字符数远超char型。
  标准C++中的wprintf()函数以及iostream类库中的类和对象能提供wchar_t宽字符类型的相关操作。

#include <iostream>
  using namespace std;
  void main()
  {
  locale loc( "chs" );//定义“区域设置”为中文方式
  wcout.imbue( loc );//载入中文字符输入方式
  wchar_t str[]=L"中国";//定义宽字符数组,注意L是大写
  wcout<<str<<endl;//显示宽字符数组,下同
  wprintf(str);
  system("pause");

ar_t


weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值