(一)该语句可用于清空数组,头文件为c++的<iostream>
memset(a,0,sizeof(a))
(二)使用pow开三次方是利用浮点数使用指数进行开方,在计算时精度损失较大,在数值较大时,会产生精度不够产生误差。
解决办法:使用c++ <math> 库中的cbrt函数,
#include<math>
int x;
cbrt(x);
(三)数组的运算比变量的++优先级高,故
a[b[i++]]--;
可实现数组a以a[b[i]]的值进行先行计算,然后再使i++,此技巧可压缩代码行数,避免冗长出错。
判断子序列
#include<stdio.h>
int main()
{
int n , m ,x;
int a[100005]={0},b[100005]={0};
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int j=0;j<m;j++)
{
scanf("%d",&b[j]);
}
int i=0,j=0;
while(i<n&&j<m)
{
if(a[i]==b[j])i++;
j++;
}
if(i==n)printf("Yes\n");
else printf("No\n");
return 0;
}
本文介绍了C++中清空数组的方法,使用memset函数,并讨论了浮点数开立方的精度问题,推荐使用cbrt函数。此外,展示了如何通过数组运算优化代码,以及如何判断一个数组是否为另一个数组的子序列。提供的代码示例清晰地解释了这些概念。
1万+

被折叠的 条评论
为什么被折叠?



