这篇文章是一篇bug记录文章,包括C++、Java的一些bug和解决方法,后续可能也会更新
-
这个警告目的是防止一个负的符号型的数据转化为无符号型时,会产生一个不是我们想要的很大的数据。signed 和unsigned数据的范围也不同。
解决方法:在i前面加 unsigned 或者加 std::size_t
将这一句改为 for(std::size_t i = 0; i < strlen(str); i++) 或
for(signed i = 0; i < strlen(str); i++)A warning:comparison between signed and unsigned integer expressions [-Wsign-compare]
-
distance是返回容器中两个地址之间的距离
参数为(地址, 地址)
返回值为整型 -
Java:-Cannot make a static reference to the non-static method is_Valid_Password(String):
出现这个错误的原因是在Java语言中对静态方法有两点规定:在静态方法中不可以使用this关键字;在静态方法中不可以直接调用非静态方法
main方法必须为静态 -
报错[Error] invalid types ‘int[int]‘ for array subscript原因及解决方案:
这通常是数组的问题,我目前总结出3种可能:数组变量名不一致,或者没定义,比如你定义了一个ans数组,但是你在用的时候误写成了a数组(oj应该爆CE)
数组空间不够,比如你要访问a[6],可是你只定义了int a[6]数组,所以下标最多到5,定义改成7就行了。(oj应该爆RE)
变量名和数组名重复定义,比如定义了一个int a;然后又定义了一个int a[6];数组,(oj应该爆CE吧)原文链接:https://blog.csdn.net/cool99781/article/details/119580433
-
C++中union的作用:
在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可以使用联合体来发挥其长处。 -
在C++中若要设置长度大于1000000的数组,不能在函数内部声明,因为这样属于局部变量,存放在了栈上,容易造成内存溢出。常出现在算法题中,我经常错
-
sort(first,last,cmp);
其中,first是元素的起始地址,last是结束地址,cmp是排序的方式。对[first,last)(一定要注意这里的区间是左闭又开)区间内数据根据cmp的方式进行排序。也可以不写第三个参数,此时按默认排序,从小到大进行排序。 -
Java:如果一个类里定义了构造函数,则系统不会再给定义默认的无参构造函数。如若还需要无参的构造函数,则必须显式的在类中定义。
-
Java:==是判断两个人是不是住在同一个地址,而equals是判断同一个地址里住的人是不是同一个
-
Java:在程序中,调用方法并且把数组的名称作为参数传递到方法中。
本质上是传递数组的地址值。既然传递的是数组的地址,那么方法就可以通过数组的地址改变内存中数组的内容。类似于C语言中调用函数传递数组的指针一样。可以在函数中通过指针改变数组的内容。
所以在JAVA当中,数组为引用类型,可以把数组作为参数传递到方法中去改变数组。Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)’ on a null object reference